12

For the following 3 compile cases :

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

how do I know the "default include directories", "default link directories" and "default link libraries" in each case ? I am using gcc 4.5.2 in a 32 bit Ubuntu 11.04 environment.

For case (1), is gcc using the standard C libraries or the GNU C libraries ? Is there difference between the two C libraries ?

Comparing cases (2) and (3), is there any difference in the "default link libraries" used by the compiler ? Are they using the standard C++ libraries or the GNU C++ libraries ? What is the difference between the two C++ libraries ?

Thanks in advance for any suggestion.

Lawrence Tsang

2

3 Answers 3

16

Say gcc -v, or g++ -v to print out verbose information about the environment.

E.g. for me this says:

#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 

Also try gcc -dumpspecs to see details about the invoked tools in the tool chain.

Sign up to request clarification or add additional context in comments.

2 Comments

This needs a file to compile. So just running g++ -v wont work. It needs to be g++ -v somefile.cpp
As an alternative you can try echo | gcc -E -Wp,-v -.
12

Kerrek SB's answer doesn't quite work for me on Ubuntu 12.04, but this seems to work:

cpp -v

Toward the bottom I get this:

#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. 

Comments

1

As another alternative you can use this command:

echo | gcc -E -Wp,-v - 

Since messages of gcc are printed as stderr you may redirect it to stdin for further processing (e.g. sed, grep, awk, ...)

echo | gcc -E -Wp,-v - 2>&1 | grep lib 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.