gpt4 book ai didi

c++ - 指定包含路径以仅在 g++ 中提升到一个位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:23:45 26 4
gpt4 key购买 nike

我正在开发一个使用 boost 库的代码库。但是,我最近在新用户的机器上构建基础时遇到了问题。我能够将问题归结为以下内容。下面是构建系统的样子:

/root
/SubModules_with_Makefiles_and_Code
/thirdparty/boost

子模块代码将像这样引用 boost 内容(例如):

#include <boost/property_tree/ptree.hpp>

子模块 make 文件将构建这样的代码(例如):

g++ -c -o code.o code.cpp -I/root/thirdparty/boost

我们的第 3 方增强库是 1.37 版。但是,一些模块已经开始使用更高版本的 boost。这个问题已经被掩盖了,因为构建这些模块的机器包含安装在/usr/include/boost 中的 boost 1.41。

出现这个问题是因为新用户的机器没有在/usr/include 中安装boost 1.41。理想情况下,我希望 g++ 在第三方目录中寻找提升,而不是在其他任何地方。这样,我们可以更严格地控​​制代码库的构建方式。

-I

在查找期间将 放在系统包含之前,但仍会查看系统包含,根据机器的不同,可以在此处安装更高版本的 boost。我可以抑制查看系统包含的内容,但这真的很痛苦。

除了替换之外,还有什么聪明的方法可以解决这个问题:

#include <boost/something.hpp>

#include <thirdparty/boost/something.hpp>

?如果有帮助,我在 redhat linux 上使用 gnu make 3.81 和 g++ 4.4.5。

最佳答案

查看“包含路径”命令行选项 (-I)。你可以设置在哪里它搜索包含的文件。文档 here

关于c++ - 指定包含路径以仅在 g++ 中提升到一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com