gpt4 book ai didi

linux - g++ 默认 header 包含列表

转载 作者:IT王子 更新时间:2023-10-29 01:22:59 25 4
gpt4 key购买 nike

在 Linux 机器 ( lubuntu 11.10 ) 中以详细模式执行交叉 g++ 编译时,我可以看到默认包含头目录的列表:

#include <...> search starts here:
/opt/eldk-4.2/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include
/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/powerpc-linux
/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/backward
/opt/eldk-4.2/usr/../ppc_4xx/usr/include

在另一台 Linux 机器 (lubuntu 12.10) 中执行完全相同的 g++ 二进制文件,我得到另一个不同的列表,其中的元素更少:

#include <...> search starts here:
/opt/eldk-4.2/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include

并且其中一些元素的构造看起来很糟糕,如下所示:

ignoring nonexistent directory "/opt/ppc_4xx/usr/lib/gcc/powerpc-linux/includ../include/c++/4.2.2"

结果是一些在第一个系统上编译的代码在第二个系统上没有编译,因为找不到一些头文件。

为什么会这样?这份名单从何而来?谁负责 build 它?是否可以轻松更改它?

感谢任何帮助。

最佳答案

您可以通过设置环境变量将目录添加到默认搜索路径:

  • C_INCLUDE_PATH(用于 C 头文件)
  • CPLUS_INCLUDE_PATH(用于 C++ 头文件)。

或者,you can create and edit specfile并将它放在 G++ 寻找它们的地方。您可以使用 strace gcc 检查路径。

Additional documentation on specfiles on GCC page.

关于linux - g++ 默认 header 包含列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11073707/

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