Windows VS cl.exe常用命令行参数

2023-04-19  本文已影响0人  CodingCode
  1. 环境变量

两个环境变量INCLUDE和LIB。(不区分大小写)

  1. INCLUDE用来指定include头文件的搜索路径。(或者命令后/I选项)
  2. LIB用来指定lib库文件的搜索路径,是.lib文件,不是.dll文件,编译的时候用不到.dll文件。(或者命令行/link /libpath)
  1. 命令行格式
CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]
  1. 指定输出文件名
/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
  1. 生产预处理文件

/E:生成预处理文件输出到屏幕
/P:生成预处理文件输出到.i文件

  1. DLL相关

/LD:生产.dll文件
/LDd:生产debug版本的.dll文件

  1. /MD /MT选项
/MD   使用 MSVCRT.lib  创建多线程 DLL
/MDd  使用 MSVCRTD.lib 创建调试多线程 DLL
/ML   使用 LIBC.lib    创建单线程可执行文件
/MLd  使用 LIBCD.lib   创建调试单线程可执行文件
/MT   使用 LIBCMT.lib  创建多线程可执行文件
/MTd  使用 LIBCMTD.lib 创建调试多线程可执行文件
  1. LINK相关

/link <link-options>:所有的link-options会被传给link.exe处理,而cl.exe不直接处理。

  1. 其它选项

/nologo:不显示程序的版权信息

上一篇下一篇

猜你喜欢

热点阅读