Zrzut zawiera ścieżki z g++

Próbuję napisać mały skrypt kompilacji i chcę ustalić, czy includes to system includes, czy nie. Chcę więc g++ powiedzieć mi, że używa ścieżki include.

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

Więc próbowałem:

g++ -Xpreprocessor -v  

Co nie działa całkiem dobrze- g++ przechwytuje -v dla własnego, obszernego wyjścia.

Author: Brian Tompsett - 汤莱恩, 2012-08-14

1 answers

Od Jonathana Wakely lepsza opcja (działa też na clang):

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

Zauważyłem, że w cpp jest flaga określająca język. To działa 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 jest to ważne dla -x c++ to be -xc++ na gcc 4.2

 101
Author: Oliver,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-14 23:27:17