我如何知道 Ubuntu 11.04 中 gcc、g++/c++ 的"default include directories"、"default link directories"和"default

How do I know the "default include directories", "default link directories" and "default link libraries" of gcc, g++/c++ in Ubuntu 11.04?

本文关键字:default directories c++ include link g++ Ubuntu 何知道 gcc      更新时间:2023-10-16

对于以下3种编译情况:

gcc -o helloc hello.c                    (1)
g++ -o hellocpp hello.cpp                (2)
c++ -o hellocpp hello.cpp                (3)

在每种情况下,我如何知道"默认包含目录"、"默认链接目录"answers"默认链接库"?我在32位Ubuntu 11.04环境中使用gcc 4.5.2。

对于情况(1),gcc使用的是标准C库还是GNU C库?这两个C库之间有区别吗?

比较情况(2)和(3),编译器使用的"默认链接库"有什么不同吗?他们使用的是标准C++库还是GNU C++库?这两个C++库之间有什么区别?

提前感谢您的任何建议。

Lawrence Tsang

gcc -vg++ -v以打印出有关环境的详细信息。

例如,对我来说,上面写着:

#include <...> search starts here:
 /usr/local/lib/gcc/i686-pc-linux-gnu/4.6.2/../../../../include/c++/4.6.2
 /usr/local/lib/gcc/i686-pc-linux-gnu/4.6.2/../../../../include/c++/4.6.2/i686-pc-linux-gnu
 /usr/local/lib/gcc/i686-pc-linux-gnu/4.6.2/../../../../include/c++/4.6.2/backward
 /usr/local/lib/gcc/i686-pc-linux-gnu/4.6.2/include
 /usr/local/include
 /usr/local/lib/gcc/i686-pc-linux-gnu/4.6.2/include-fixed
 /usr/include

还可以尝试gcc -dumpspecs查看有关工具链中被调用工具的详细信息。

Kerrek SB的答案在Ubuntu 12.04上对我来说不太适用,但这似乎有效:

cpp -v

在底部,我得到了这个:

#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.

作为另一种选择,您可以使用以下命令:

echo | gcc -E -Wp,-v -

由于gcc的消息被打印为stderr,您可以将其重定向到stdin进行进一步处理(例如sedgrepawk…)

echo | gcc -E -Wp,-v - 2>&1 | grep lib
相关文章: