Windows VS cl.exe常用命令行参数
2023-04-19 本文已影响0人
CodingCode
- 环境变量
两个环境变量INCLUDE和LIB。(不区分大小写)
- INCLUDE用来指定include头文件的搜索路径。(或者命令后/I选项)
- LIB用来指定lib库文件的搜索路径,是.lib文件,不是.dll文件,编译的时候用不到.dll文件。(或者命令行/link /libpath)
- 命令行格式
CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]
- 指定输出文件名
/Fe:指定输出可执行文件
/Fo:指定对象文件,就是.o文件,通常用在cl.exe /c
注意
/Fe
用来指定最终的输出文件名,包括.dll
文件以及.exe
文件名。
/Fe
不能用来指示带/c
时的.o
输出文件名,因为.o
输出必须用/Fo
来指定。
例如:
cl.exe /Femyapp.exe myapp.c
cl.exe /LD /Femylib.dll mylib.c
cl.exe /c /Fomyobj.o myobj.c
关于如何在编译.dll时指定.lib文件名字的方法,可以使用link.exe命令行:
link.exe /OUT:"mylib.dll" /IMPLIB:"mylib.lib" /DEF:"mydef.def" /DLL
- 生产预处理文件
/E:生成预处理文件输出到屏幕
/P:生成预处理文件输出到.i文件
- DLL相关
/LD:生产.dll文件
/LDd:生产debug版本的.dll文件
- /MD /MT选项
/MD 使用 MSVCRT.lib 创建多线程 DLL
/MDd 使用 MSVCRTD.lib 创建调试多线程 DLL
/ML 使用 LIBC.lib 创建单线程可执行文件
/MLd 使用 LIBCD.lib 创建调试单线程可执行文件
/MT 使用 LIBCMT.lib 创建多线程可执行文件
/MTd 使用 LIBCMTD.lib 创建调试多线程可执行文件
- LINK相关
/link <link-options>:所有的link-options会被传给link.exe处理,而cl.exe不直接处理。
- 其它选项
/nologo:不显示程序的版权信息