避免/ usr / include / boost

时间:2012-10-19 19:21:41

标签: c++ include-path

使用/usr/include/boost中相当旧版本的boost运行旧版本的rhel。安装了一个更现代的boost版本,并为-I添加了适当的g++选项,以便它几乎总是转到boost目录的新目录。问题在于很多代码库是在几年前为旧版本的boost编写的,并且包含了在更现代的版本中不存在的头文件。在这种情况下,cpp很乐意包含来自/usr/include/boost的标头。避免这种情况的最佳方法是什么?我宁愿不改变#include <boost/file.hpp>以明确指向不同的地方,除非我必须并且非常乐意清理依赖于已灭绝的标题的代码,如果我只知道它们是什么的话。这可能是一个持续存在的问题,因为一些从事该项目的程序员可能习惯性地包括已经灭绝的标题,因此仅仅检查一次是不够的。

1 个答案:

答案 0 :(得分:1)

而不是尝试更改代码查找包含的位置,或者更改makefile以包含其他目录,如何更改/usr/include/boost的内容以使其指向新内容?

这是我试图做的事情:

  1. /usr/include/boost重命名为其他内容,可能是/usr/include/boost-old
  2. 创建指向/usr/include/boost - &gt;的符号链接/usr/boost/include/boost-old
  3. 您现在可以通过编译应用来测试此配置。它应该包含旧的Boost库。
  4. 将新的Boost库安装到新目录,例如/usr/include/boost-new
  5. 将suymbolic链接更改为指向新库/usr/include/boost - &gt; /usr/include/boost-new