You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在普通Windows命令提示符中用cl.exe调用标准库编译DLL?

普通命令提示符下编译VS DLL的环境配置与编译方法

一、解决vcvars脚本无法识别的问题

你找不到vcvars32.bat是因为它不在系统默认PATH路径中,需要使用完整路径执行。VS2022的默认安装路径下,脚本位置如下:

  • 32位环境:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat
  • 64位环境:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat
    (如果安装的是Professional或Enterprise版本,将路径中的Community替换为对应版本名称即可)

直接在命令提示符中执行完整路径的脚本,示例:

"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat"

执行完成后,编译所需的头文件路径、库路径、工具路径等环境变量会自动配置到位,无需手动设置。

二、手动配置环境变量(不推荐,易出错)

如果不想使用vcvars脚本,需手动设置三个关键环境变量:

  • INCLUDE:添加C++标准库和Windows SDK的头文件路径(注意替换示例中的版本号为你实际安装的版本):
    set INCLUDE=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared
    
  • LIB:添加库文件路径:
    set LIB=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\lib\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x86
    
  • PATH:添加cl.exe等编译工具的路径:
    set PATH=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\bin\Hostx86\x86;%PATH%
    

三、编译DLL的命令及链接要求

环境配置完成后,使用以下命令编译你的test.cpp生成DLL:

cl /LD test.cpp
  • /LD是核心参数,用于指定编译器生成动态链接库,会自动处理DLL所需的导出表生成、运行时库链接等操作。
  • 对于iostream这类C标准库,只要INCLUDE和LIB路径配置正确,/LD参数会自动链接对应的C运行时库(如msvcrt.lib),无需额外添加链接标志。

如果需要静态链接C++运行时库(让DLL不依赖外部运行时文件),可添加/MT参数:

cl /LD /MT test.cpp

编译成功后会生成三个文件:test.dll(目标动态库)、test.lib(供其他程序调用的导入库)、test.exp(导出符号文件)。

内容的提问来源于stack exchange,提问作者Runsva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:05:23