在带有相当旧版本的 boost in 的旧版本 rhel 上运行/usr/include/boost
。安装了更现代的 boost 版本并添加了适当的-I
选项,g++
以便它几乎总是进入 boost 标头的新目录。问题是很多代码库是多年前为旧版本的 boost 编写的,并且包含在更现代的 boost 中不存在的标头。在这种情况下,cpp
愉快地包含来自/usr/include/boost
. 避免这种情况的最佳方法是什么?我宁愿不改变#include <boost/file.hpp>
明确地指向一个不同的地方,除非我必须这样做,并且如果我只知道它们是什么,我非常乐意清理依赖于已灭绝标头的代码。这可能是一个持续存在的问题,因为一些从事该项目的程序员可能习惯性地包含已灭绝的标头,因此仅检查一次是不够的。
问问题
1081 次
1 回答
2
与其尝试更改代码查找包含的位置,或者更改生成文件以包含其他目录,不如更改其内容/usr/include/boost
以使其指向新内容?
这是我要尝试做的事情:
- 重命名
/usr/include/boost
为别的东西,也许/usr/include/boost-old
- 创建一个指向
/usr/include/boost
->的符号链接/usr/boost/include/boost-old
- 您现在可以通过编译您的应用程序来测试此配置。它应该包括旧的 Boost 库。
- 将新的 Boost 库安装到新目录,比如
/usr/include/boost-new
- 将 suymbolic 链接更改为指向新库
/usr/include/boost
->/usr/include/boost-new
于 2012-10-19T19:47:39.007 回答