2012-01-19 19 views
9

Para los casos siguientes 3 de compilación:¿Cómo sé "directorios de inclusión predeterminados", "directorios de enlaces predeterminados" y "bibliotecas de enlaces predeterminadas" de gcc, g ++/C++ en Ubuntu 11.04?

gcc -o helloc hello.c     (1) 

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

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

cómo puedo saber el "por defecto incluye directorios", "enlace predeterminada directorios" y "bibliotecas de enlace predeterminada" en cada caso? Estoy usando gcc 4.5.2 en un entorno Ubuntu 11.04 de 32 bits.

Para el caso (1), ¿utiliza gcc las bibliotecas C estándar o las bibliotecas GNU C? ¿Hay diferencia entre las dos bibliotecas de C?

Al comparar los casos (2) y (3), ¿hay alguna diferencia en las "bibliotecas de enlaces predeterminadas" utilizadas por el compilador? ¿Están utilizando las bibliotecas estándares de C++ o las bibliotecas GNU C++? ¿Cuál es la diferencia entre las dos bibliotecas C++?

Gracias de antemano por cualquier sugerencia.

Lawrence Tsang

+0

ruta de inclusión cabeceras HTTP : //stackoverflow.com/questions/2988779/gcc-how-to-ignore-standard-include-paths || ruta de las bibliotecas http://stackoverflow.com/questions/9922949/how-to-print-the-ldlinker-search-path –

Respuesta

10

Say gcc -v o g++ -v a imprimir la información detallada sobre el medio ambiente.

E.g. para mí esto dice:

#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 

También intente gcc -dumpspecs para ver detalles acerca de las herramientas invocados en la cadena de herramientas.

respuesta
+2

Esto necesita un archivo para compilar. Entonces solo ejecutar 'g ++ -v' no funcionará. Tiene que ser 'g ++ -v somefile.cpp' – baruch

+1

Como una [alternativa] (https://stackoverflow.com/a/17940271/287933) puede intentar' echo | gcc -E-Wp, -v -'. – Machta

8

kerrek de SB funciona no del todo para mí en Ubuntu 12.04, pero esto parece funcionar:

cpp -v

Hacia el final me sale esto:

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