Herausfinden, was der GCC-Include-Pfad ist [duplicate]
Lesezeit: 1 Minute
Ich versuche, die programmgesteuert zu finden #include Pfad unter Linux, was, wie ich es verstehe, in der Praxis bedeutet, das zu finden, wofür GCC es hält. (Stimmt das wirklich? Wie macht Clang das?)
Entsprechend http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html einige der Komponenten betreffen die CPU-Architektur und die GCC-Version; vor allem letzteres scheint heikel zu sein; Ich nehme an, es könnte durch Laufen erhalten werden gcc --version und Analysieren der Ausgabe (bzw gcc -v), aber das wirkt bestenfalls unelegant und schlimmstenfalls zerbrechlich. Es könnte eine andere Option sein, dies aus dem eigenen Code heraus zu tun, vorausgesetzt, das eigene Programm wird mit GCC kompiliert, aber es würde abhängig von dieser Annahme erforderlich sein.
Was ist die empfohlene Vorgehensweise?
Café
Der Befehl
echo | gcc -E -Wp,-v -
zeigt den verwendeten Include-Pfad an.
tut which gcc Befehl auf Bash macht das gleiche?
– Benutzer2045557
30. Juli 2013 um 7:38 Uhr
Ist der echo | notwendig?
– Wilhelm Grau
17. April 2014 um 15:37 Uhr
Das cpp -Wp,-v Befehl wartet auf eine Eingabe. Das echo | erspart dem Benutzer die Notwendigkeit Ctrl + D oder Ctrl + C zur Schale zurückkehren.
– roganartu
28. April 2014 um 3:12 Uhr
echo | cpp -xc++ -Wp,-v würde die C++ Include-Pfade geben.
– legends2k
16. März 2015 um 13:42 Uhr
gcc -E -Wp,-v -xc /dev/null <- Diese Version benötigt keine Shell (Use g++ -E -Wp,-v -xc++ /dev/null für C++)
– minmaxavg
25. Juli 2017 um 13:16 Uhr
Ich bin mir nicht sicher, was du mit der meinst empfohlen Möglichkeit, den Include-Pfad zu finden. Das Standard Der Weg ist wie folgt (für c und c++):