我怎么知道Ubuntu 11.04中gcc,g ++ / c ++的“默认包含目录”,“默认链接目录”和“默认链接库”?

时间:2012-01-19 03:21:07

标签: c++ gcc

对于以下3个编译案例:

gcc -o helloc hello.c                    (1)

g++ -o hellocpp hello.cpp                (2)

c++ -o hellocpp hello.cpp                (3)

我怎么知道每种情况下的“默认包含目录”,“默认链接目录”和“默认链接库”?我在32位Ubuntu 11.04环境中使用gcc 4.5.2。

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

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

提前感谢任何建议。

Lawrence Tsang

2 个答案:

答案 0 :(得分:12)

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

E.g。对我来说,这说:

#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查看有关工具链中调用工具的详细信息。

答案 1 :(得分:9)

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.