boost build:如何将include标记为"系统"包括

时间:2016-11-24 19:02:16

标签: c++ bjam boost-build boost-bjam

gccclang中,可以使用-I-isystem将包含目录传递给编译器。

不同之处在于,只有在isystem指令中使用尖括号<>而不是引号#include时才会搜索""个路径。此外,某些警告出现在系统标题中时会被抑制(因为您可能无法解决系统标题中的问题)。 (据我所知,可能还有其他细微差别。)

并非所有编译器都支持这一概念,它是一个实现问题,而不是标准的一部分。

cmake专门支持此功能,并且会做出正确的事情&#34;在支持它的编译器上。

scons历史上并不支持它,但有很多方法可以解决这个问题,而且最近也有内置some support

boost.build又称bjamb2是否有同等功能?在文档和示例中,include目录使用<include>path/to/files指定,并作为libexe目标的要求传递。但我没有找到任何<system_include>或类似功能。

如果它不存在,有什么方法可以解决它吗?除非正确使用这些标记,否则某些项目不会在gccclang上没有警告的情况下构建。

1 个答案:

答案 0 :(得分:1)

不,boost.build中没有这样的功能。您可以做的是有条件地为支持系统包含的特定工具集启用-isystem,例如:

exe myexe : mysrc.cpp : <toolset>gcc:<cxxflags>-isystem/path/to/include/files ;