如何指示gcc/clang将临时文件输出到特定目录

如何指示gcc/clang将临时文件输出到特定目录,gcc,command-line,g++,clang,clang++,Gcc,Command Line,G++,Clang,Clang++,使用--save temps选项保存临时文件时,gcc/clang将临时文件输出到与输入文件相同的目录中。是否有一个选项指示gcc将文件输出到其他目录 或 如果不使用--save temps选项,则会在默认目录(即$TMPDIR,如/tmp)中创建临时文件,但一旦创建了目标文件,这些文件就会被删除。有没有一种方法可以指示编译器保留这些文件,而不仅仅是删除它们(我认为唯一的选择是--save temps,它有上面提到的问题)如果使用-save temps=obj临时文件与输出文件放在同一个目录中,

使用--save temps选项保存临时文件时,gcc/clang将临时文件输出到与输入文件相同的目录中。是否有一个选项指示gcc将文件输出到其他目录


如果不使用--save temps选项,则会在默认目录(即$TMPDIR,如/tmp)中创建临时文件,但一旦创建了目标文件,这些文件就会被删除。有没有一种方法可以指示编译器保留这些文件,而不仅仅是删除它们(我认为唯一的选择是--save temps,它有上面提到的问题)

如果使用
-save temps=obj
临时文件与输出文件放在同一个目录中,例如

gcc -save-temps=obj -o dir/foo.o foo.c
将创建目录/foo.i


显然,手册中记录了这一点。所有受支持的选项都列在中,并链接到for
-save temps

我使用的是gcc版本4.3.4。我尝试使用“=obj”,但它给出了错误“gcc:unrecogned option'-save temps=obj”。我触发的命令是“gcc-c-w-save temps=obj-ggdb-m32测试代码.c-o 32测试/测试代码.o”。有什么提示可以消除此错误吗?@RupeshKumar,在GCC 4.5.0之前,
-save temps
选项不接受参数,因此只需使用
-save temps
,中间文件将与输入文件位于同一目录中,或者升级编译器(4.3.4非常旧)。感谢Jonathan的回复。我无法升级编译器,因为它可能会损坏东西。在makefile中,我使用mv命令将中间文件移动到所需的目录。链接页面目前没有提到
-save temps
@Riot,谢谢,它移动到了另一个页面。您仍然可以通过所有选项列表找到它。