如何使用MinGW构建libcpr/cpr静态库而非动态库?
在Windows Mingw64环境下构建libcpr静态库的配置方法
关键CMake配置参数
libcpr基于CMake构建,只需在配置阶段添加几个参数就能强制生成静态库:
-DBUILD_SHARED_LIBS=OFF:全局禁用动态库构建,强制生成静态库-DCURL_STATICLIB=ON:让cpr依赖的libcurl也编译为静态库,避免生成动态的libcurl-d.dll-DZLIB_STATIC=ON:同理,将依赖的zlib也编译为静态版本-DCPR_BUILD_TESTS=OFF(可选):关闭测试代码编译,缩短构建时间
完整构建流程示例
假设你在libcpr项目根目录操作,执行以下命令:
# 创建并进入构建目录 mkdir build && cd build # CMake配置 cmake .. -G "MinGW Makefiles" -DBUILD_SHARED_LIBS=OFF -DCURL_STATICLIB=ON -DZLIB_STATIC=ON -DCMAKE_BUILD_TYPE=Release # 开始编译 mingw32-make -j$(nproc)
注:
-G "MinGW Makefiles"必须指定,确保CMake生成适配Mingw64的构建脚本;-DCMAKE_BUILD_TYPE=Release可替换为Debug生成调试版本静态库
结果验证
构建完成后,在build/lib目录下会生成以下静态库文件:
libcpr.alibcurl.alibzlib.a
内容的提问来源于stack exchange,提问作者Cypherpunk Samurai
相关产品推荐
相关产品推荐

