在 Windows 环境中工作时,我遇到了以下问题:我想告诉 cl 编译器编译(不链接)一些源文件,将其放在指定的目录中,如下所示:
cl /c /FeOBJDIR\ source.cpp
不幸的是,当使用/c 时/Fe 选项被忽略(正如我在 https://learn.microsoft.com/en-us/cpp/build/reference/fe-name-exe-file 中发现的那样)。
那我只能写:
cl /FeOBJDIR\ source.cpp
这实际上将 source.exe 放在 OBJDIR 中,并将 source.obj 放在 .\
但是我需要将 .obj 文件放在与 .cpp 文件不同的目录中。
你知道如何告诉编译器将目标文件放在指定目录中吗?
最佳答案
我发现完成这项工作的正确编译器选项是/Fo ( https://learn.microsoft.com/en-us/cpp/build/reference/fo-object-file-name )。 /Fo 指定要使用的对象 (.obj) 文件名或目录,而不是默认值。 它还可以与 /c 选项一起使用,这样您就可以让编译器知道您只想编译(而不是链接)以及将 .obj 文件放入哪个目录。
关于powershell - 使用 cl 编译器选项在不同目录中编译对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51949387/