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

如何用MinGW+CMake在Windows生成.lib静态库及.dll动态库?

Windows下MinGW+CMake生成.lib静态库的解决办法

MinGW工具链默认沿用类Unix的库命名规则,静态库后缀为.a,这是正常现象。如果需要生成后缀为.lib的静态库,可以通过以下两种方式配置CMake:

方式1:修改CMakeLists.txt

在定义静态库的代码前,添加变量设置强制修改后缀:

# 设定静态库输出后缀为.lib
set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")

# 定义你的静态库
add_library(MyStaticLib STATIC src/foo.cpp src/bar.cpp)

方式2:CMake命令行传参

如果不想改动项目的CMakeLists.txt,在执行CMake生成构建文件时,通过-D参数指定变量:

cmake -G "MinGW Makefiles" -DCMAKE_STATIC_LIBRARY_SUFFIX=".lib" ../你的源码目录

额外说明

  • 这种修改只是更改文件后缀,库的内部格式依然是MinGW兼容的,无法直接供MSVC编译器使用。如果需要MSVC标准的.lib库,应该直接选择MSVC作为CMake生成器(比如Visual Studio 2022)。
  • 若同时需要调整动态库的导入库后缀,可添加以下设置:
    # 动态库本体后缀保持为.dll
    set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
    # 将动态库的导入库后缀改为.lib
    set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:44:52