powershell - 使用 cl 编译器选项在不同目录中编译对象

标签 powershell compiler-options cl

在 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/

相关文章:

c# - 为什么某些属性和方法在 Powershell 中可用,但在 C# 中不可用

powershell - AAD PowerShell v2 Add-MsolRoleMember 等效项

PowerShell 脚本仅导出没有文件扩展名的文件名列表,然后输出到每个目录单独的文本文件

c++ - C vs C++ 在 VS2015 中使用 cl 编译器

c++ - 带有 VS 2015 命令提示符的 Visual Studio 2017 + vcvarsall 无效 + 找不到 nmake

powershell - 为什么需要定义$ id = 1?

node.js - 如何找到任何版本 Node 的最新 Typescript 目标支持?

c++ - 如何使用依赖于符号调试的参数定义函数?

c - 将 GCC 选项添加到 C 源文件的顶部

c++ - 区分 cl.exe (Visual Studio C++) 生成的 32 位和 64 位 PE 目标文件