【发布时间】:2016-07-13 16:16:36
【问题描述】:
我在 aws.ami linux 上从源代码编译了 gcc 5.3.0,以了解有关整个开发编译链的更多信息。我已经搜索了几个小时的多个线程,但没有找到正确的组合来准确了解发生了什么。
查看.configure --help,我设置了标志--includedir=/home/mybin/include并使用Fine tuning of the installation directories:下的所有标志编译程序没有错误
当我编译一个传递 g++ -v test.cc 的程序时,我看到默认情况下编译器正在查找
#include "..." search starts here:
#include <...> search starts here:
/home/mybin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/include
/usr/local/include
/home/mybin/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/include-fixed
/usr/include
End of search list.
用于包含map & iostream等程序。
Q1:为什么 -v 输出在搜索中不显示 --includedir。我注意到它确实会在那里寻找#include 程序。
Q2:我注意到当make install 发生时,它没有将文件从编译tmp 目录/home/tmp/gcc-5.3.0/libstdc++-v3/include/std/.... 复制到--includedir。是否有一个标志我错过了让它将这些文件转储到该目录中?
Q3:还使用--help 输出我设置了CPPFLAGS="-I/home/anotherBin" 来测试它是否会扫描此目录以查找其他包含文件。但是,它似乎不起作用。
所以我尝试了以下每一项都没有成功,设置正确的标志是什么?
LDFLAGS="-L/home/anotherBin"
linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir>
LIBS="-l/home/anotherBin"
libraries to pass to the linker, e.g. -l<library>
【问题讨论】: