7

我正在使用命令行参数 Fo,命令行是这样的:

file1.c  /ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /errorReport:queue /bigobj /FdDebug\vc100.pdb /FoDebug\ /FaDebug\

但是仍然在 Debug 文件夹之外生成了一些文件(exe、ilk、pdb)
我做错了什么?

4

3 回答 3

5

这些是链接器生成的文件。您需要单独运行它或使用 /link 编译器选项,以便控制其输出。使用 /OUT 选项设置 .exe 和 .ilk 位置,使用 /PDB 选项设置 .pdb 位置。

于 2012-05-01T04:28:14.700 回答
2

因为(如DCoder 所说cl.exe将任何命令行选项传递/link给链接器,您可以在一行中完成:

cl.exe <all your cl arguments here> /link user32.lib <and other lib here> /libpath:"C:\Program Files\Microsoft SDKs\windows\v7.0A\Lib\" /out:files\newfilename.exe

你可以改变files\newfilename.exe成为你想要的任何东西。如果您从批处理文件运行,您可以执行诸如此类的操作files\%1.exe...

于 2013-07-07T11:21:52.337 回答
0

好吧,我一直在寻找同样的东西,我在cl 文档中找到了所有内容。然而这个页面是我搜索时谷歌的第一个页面,所以我把参考放在这里

  • /FA, /Fa(清单文件)
  • 指定路径名
  • /Fd(命名 PDB 文件)
  • /Fe(命名 EXE 文件)
  • /FI(名称强制包含文件)
  • /Fm(名称映射文件)
  • /Fo(名称对象文件)
  • /Fp(名称 .pch 文件)
  • /FR、/Fr(创建 .sbr 文件)
  • /FU(名称强制#使用文件)
  • /Fx(合并注入代码)
于 2021-10-08T05:47:01.227 回答