2012-11-11 48 views
8

使用--save-temps選項保存臨時文件時,gcc/clang將臨時文件輸出到與輸入文件相同的目錄中。是否有指示gcc將文件輸出到其他目錄的選項。如何指示gcc/clang將臨時文件輸出到特定目錄

OR

當不使用臨時文件在默認目錄下創建(即$ TMPDIR如/ tmp),但一旦創建了目標文件被刪除了--save-臨時工選項。有沒有辦法指示編譯器保留這些文件,而不是隻刪除它們(我認爲唯一的選擇是 - 保存臨時文件,其中存在上述問題)

+2

-save-temps = cwd – 2012-11-11 22:38:35

回答

7

如果您使用-save-temps=obj臨時文件是放在與輸出文件相同的目錄中,例如

gcc -save-temps=obj -o dir/foo.o foo.c 

將創建dir/foo.i

這本手冊中介紹,很明顯。所有支持的選項列在https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html,並鏈接到https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html-save-temps

+0

我使用的是gcc版本4.3.4。 我試過使用「= obj」,但它給我的錯誤「gcc:無法識別的選項」-save-temps = obj'「。 我激發的命令是「gcc -c -w -save-temps = obj -ggdb -m32 test_code.c -o 32_test/test_code.o」。 任何提示擺脫這個錯誤? – RKum

+0

@RupeshKumar,在GCC 4.5.0之前'-save-temps'選項不接受參數,所以要麼使用'-save-temps'並且中間文件將與輸入文件位於同一目錄中,或者升級你的編譯器(4.3.4很舊)。 –

+0

感謝Jonathan的回覆。我無法升級編譯器,因爲它可能會破壞事情。在makefile中,我使用mv命令將中間文件移動到所需的目錄。 – RKum

相關問題