【问题标题】:How do I know the "default include directories", "default link directories" and "default link libraries" of gcc, g++/c++ in Ubuntu 11.04?如何知道 Ubuntu 11.04 中 gcc、g++/c++ 的“默认包含目录”、“默认链接目录”和“默认链接库”?
【发布时间】:2012-02-13 19:01:12
【问题描述】:

对于以下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。

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

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

提前感谢您的任何建议。

曾志伟

【问题讨论】:

标签: c++ gcc


【解决方案1】:

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

【讨论】:

  • 这需要一个文件来编译。所以只运行g++ -v 是行不通的。必须是g++ -v somefile.cpp
  • 作为alternative,你可以试试echo | gcc -E -Wp,-v -
【解决方案2】:

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.

【讨论】:

    猜你喜欢
    • 2012-07-13
    • 1970-01-01
    • 2011-06-26
    • 2023-03-14
    • 2011-10-21
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多