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

use*_*812 11 c++ gcc

对于以下3个编译案例:

gcc -o helloc hello.c                    (1)

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

c++ -o hellocpp hello.cpp                (3)
Run Code Online (Sandbox Code Playgroud)

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

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

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

提前感谢任何建议.

劳伦斯曾

Ker*_* SB 12

gcc -v,或g++ -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
Run Code Online (Sandbox Code Playgroud)

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

  • 这需要一个文件来编译.所以只运行`g ++ -v`就行了.它需要是`g ++ -v somefile.cpp` (5认同)
  • 作为 [替代](/sf/answers/1255819001/),您可以尝试 `echo | gcc -E -Wp,-v -`. (2认同)

Tom*_*Tom 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.
Run Code Online (Sandbox Code Playgroud)