2012-11-11 14 views
8

Podczas używania opcji --save-temps do zapisania plików tymczasowych, gcc/clang wyprowadza plik tymczasowy w tym samym katalogu, co pliki wejściowe. Czy istnieje opcja, aby polecić gcc, aby pliki zostały przesłane do innego katalogu.instrukcje dla gcc/clang do wyprowadzania plików tymczasowych do określonego katalogu

LUB

Kiedy nie używając opcji --save-temps pliki tymczasowe są tworzone w domyślnym katalogu (czyli $ tmpdir takich jak/tmp), ale są one usunięte po utworzeniu pliku obiektu. Czy istnieje sposób, aby polecić kompilatorowi przechowywanie tych plików zamiast ich usuwania (myślę, że jedyną opcją jest --save-temps, który ma problem opisany powyżej)

+2

-save-temps = cwd –

Odpowiedz

7

Pliki tymczasowe to: -save-temps=obj umieścić w tym samym katalogu, co pliki wyjściowe, więc np

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

stworzy dir/foo.i

Jest to udokumentowane w podręczniku, oczywiście. Wszystkie obsługiwane opcje są wymienione pod adresem https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html i są linkami do https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html dla .

+0

Używam gcc wersji 4.3.4. Próbowałem użyć "= obj", ale daje to mój błąd "gcc: nierozpoznana opcja" -save-temps = obj "". Polecenie, które wypaliłem, to "gcc -c -w -save-temps = obj -ggdb -m32 test_code.c -o 32_test/test_code.o". Jakaś wskazówka, aby pozbyć się tego błędu? – RKum

+0

@RupeshKumar, przed GCC 4.5.0 opcja '-save-temps' nie przyjmuje argumentu, więc albo użyj po prostu' -save-temps', a pliki pośrednie będą w tym samym katalogu, co pliki wejściowe, lub zaktualizuj swój kompilator (4.3.4 jest bardzo stary). –

+0

Dzięki Jonathan za odpowiedź. Nie mogę zaktualizować kompilatora, ponieważ może to zepsuć rzeczy. W makefile użyłem polecenia mv, aby przenieść pliki pośrednie do żądanego katalogu. – RKum

Powiązane problemy