我正在使用 Visual Studio 2010 创建一个小的 c++ 可执行文件。由于我现在想使用不同的编辑器,我必须从命令行调用cl.exe和 link.exe。
VS 在 Project->Properties->C/C++->Commandline
和 ->Linker->CommandLine
但是,它们的工作方式并不尽如人意:
在编译器命令行中,我添加/c
并删除了文件重命名内容/Fp /Fa /Fo /Fd
(http://msdn.microsoft.com/en-us/library/fwkeyyhe.aspx)
在链接器命令行中,我删除了/MANIFEST
and /Manifest
( http://msdn.microsoft.com/en-us/library/y0zzbyt4.aspx )
结果是这样的:
cl.exe main.cpp /c /Zi /nologo /W3 /WX-
/O1 /Oi /Os /Oy /GL
/D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE"
/Gm- /EHsc /GS /Gy /fp:precise
/Zc:wchar_t /Zc:forScope /Gd /analyze- /errorReport:queue
link.exe *.obj /OUT:"test2.exe" /INCREMENTAL:NO /NOLOGO
"kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib"
"comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib"
"oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib"
/ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'"
/DEBUG /PDB:"F:\prj\visualstudio2010\test2\Release\test2.pdb"
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF
/PGD:"F:\prj\visualstudio2010\test2\Release\test2.pgd"
/LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
生成的 exe 的工作方式与我使用 GUI 构建它的方式相同,但问题是由于某种原因它是 145kb 而不是 22kb 。我应该接受这一点,还是 GUI 有什么明显的东西我错过了?