2012-11-11 2 views
8

--save-temps 옵션을 사용하여 임시 파일을 저장하는 동안 gcc/clang은 임시 파일을 입력 파일과 동일한 디렉토리에 출력합니다. gcc가 다른 디렉토리에 파일을 출력하도록 지시하는 옵션이 있습니까?임시 파일을 특정 디렉토리에 출력하도록 gcc/clang에 지시하는 방법

또는

임시 파일 (/ tmp 같은 즉 $ TMPDIR)를 기본 디렉토리에 생성되지만 객체 파일이 생성되면이 삭제 된 --save-임시 직원 옵션을 사용하지

. 컴파일러가 파일을 지우지 않고 유지하도록 지시 할 수 있습니까 (유일한 옵션은 위에서 설명한 문제가있는 --save-temps입니다)

+2

-save-temps = cwd –

답변

7

-save-temps=obj을 사용하면 임시 파일은 다음과 같습니다. 출력 파일과 같은 디렉토리에 넣으십시오. 이 매뉴얼에 설명되어 있습니다 dir/foo.i

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

분명히 만들 것입니다. 지원되는 모든 옵션은 https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html이며 그 목록은 -save-temps 인 경우 https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html으로 연결됩니다.

+0

gcc 버전 4.3.4를 사용하고 있습니다. "= obj"를 사용하여 시도했지만 "gcc : unrecognized option '-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

관련 문제