美文网首页
Windows VS cl.exe常用命令行参数

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

作者: CodingCode | 来源:发表于2023-04-19 01:38 被阅读0次
    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:不显示程序的版权信息

    相关文章

      网友评论

          本文标题:Windows VS cl.exe常用命令行参数

          本文链接:https://www.haomeiwen.com/subject/xxikjdtx.html