在 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"
结果是,一些在第一个系统上编译的代码在第二个系统上无法编译,因为找不到某些头文件。
为什么会发生这种情况?这个列表从哪里来?谁负责构建它?是否可以轻松更改它?
感激任何帮助。
g++ -v -H
的方式运行它,它会告诉你很多信息... - Basile Starynkevitch