2012-08-14 8 views
44

Próbuję napisać mały skrypt kompilacji - i chcę ustalić, czy obejmuje to system, czy też nie. Dlatego chcę, żeby g ++ powiedział mi, że ścieżka dostępu jest używana.Zrzuty zawierają ścieżki z g ++

cpp -v wydaje się być najlepszym najlepszym ujęciem, ale nie daje mi ścieżek C++.

Tak próbowałem:

g++ -Xpreprocessor -v 

Które nie działa rację - g ++ oddaje -v na jego własnym Pełne wyjście.

Dzięki, Oliver

Odpowiedz

66

Jonathan Wakely lepszym rozwiązaniem (działa na brzękiem zbyt):

g++ -E -x c++ - -v < /dev/null 
clang++ -E -x c++ - -v < /dev/null 

zauważyłem tam flagę w KPP do określania języka. Działa to jak urok.

cpp -xc++ -v < /dev/null 


#include "..." search starts here: 
#include <...> search starts here: 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/../../../../include/c++/4.7.0 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/../../../../include/c++/4.7.0/x86_64-apple-darwin11.4.0 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/../../../../include/c++/4.7.0/backward 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/include 
/usr/local/include 
/usr/local/Cellar/gcc/4.7.0/gcc/include 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/include-fixed 
/usr/include 
/System/Library/Frameworks 
/Library/Frameworks 
End of search list. 

Właśnie zauważyłem, że to ważne dla -x c++ to be -xc++ na gcc jest 4,2

+7

albo równoważnie, 'g ++ -E -x C++ - -v

+0

Pozdrawiam - to jest lepsza opcja. Działa również na klang. – Oliver

+0

Uprości to do "g ++ -E -x C++ -v/dev/null". – Rufflewind