Ich war mit scons (Python Build-Tool), die gcc ruft zum Aufbau einer Datei, wie folgt aus:Shell Umleitung: scons ruft gcc, bauen Fehler Umleitung funktioniert nicht
$scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
g++ -o 1.o -c 1.cpp
1.cpp:20:5: error: no matching function for call to 'g'
g(&obj2);
^
1.cpp:12:6: note: candidate function not viable: no known conversion from 'B *' to 'A &' for 1st argument; remove &
void g(A&a){
^
1 error generated.
scons: *** [1.o] Error 1
scons: building terminated because of errors.
Dann versuche ich alles zu retten Ausgabe in eine Datei. Ich nehme an, die Fehlermeldungen in stderr sind, so dass ich versuchen, fd = 2 bis fd = 1 wie folgt umgeleitet werden:
$scons 2>&1 >error1
1.cpp:20:5: error: no matching function for call to 'g'
g(&obj2);
^
1.cpp:12:6: note: candidate function not viable: no known conversion from 'B *' to 'A &' for 1st argument; remove &
void g(A&a){
^
1 error generated.
scons: *** [1.o] Error 1
scheint aber nur selbst enthält Informationen von „scons“ Befehl ERROR1. Alle gcc Fehlermeldungen werden nach wie vor auf dem Bildschirm, nicht in "error1"
gespeichert$cat error1
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
g++ -o 1.o -c 1.cpp
scons: building terminated because of errors.
So wie alle scons progrems re-direct ihre fd = 2 genannt machen = 1 bis fd? Oder ist dies eine Beschränkung der Shell-Umleitung, dass nur der Stream des obersten Aufrufers umgeleitet werden könnte?
[BashFAQ # 55] (http://mywiki.wooledge.org/BashFAQ/055) scheint sehr relevant. –
Sie könnten diesen Beitrag auch sehen: [In der Shell, was bedeutet 2> & 1?] (Http://stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean?noredirect = 1 & lq = 1) – codeforester
Ich habe nicht alle Antworten durchgelesen, aber die Frage dort scheint nicht die Reihenfolge zwischen Umleitungen abzudecken - was mehr als ein wenig relevant ist. –