Gmssl windows下编译

第一步:确认终端环境

打开开始菜单 → MSYS2 UCRT64,执行:

复制代码
echo $MSYSTEM
which gcc

输出必须:

复制代码
UCRT64
/ucrt64/bin/gcc

第二步:安装 UCRT64 配套全套工具(UCRT64 终端内执行)

复制代码
pacman -Syu

如果提示关闭终端,关掉,重新打开 UCRT64 继续。

复制代码
pacman -S mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-make git

验证工具:

复制代码
gcc --version
mingw32-make --version
cmake --version

全部正常输出版本号。

第三步:编译 GmSSL‑3(UCRT64 完整命令)

复制代码
git clone https://github.com/guanzhi/GmSSL.git
cd GmSSL
git checkout tags/v3.2.0

mkdir build_ucrt64
cd build_ucrt64

若提醒连接不到github,可手动下载工程。

在CMakeLists.txt中,找到第229行 附近的add_executable(gmssl-bin ${tools}),用条件判断包起来:

复制代码
# 替换第229-232行
if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "iOS")
    add_executable(gmssl-bin ${tools})
    target_link_libraries(gmssl-bin LINK_PUBLIC gmssl)
    set_target_properties(gmssl-bin PROPERTIES RUNTIME_OUTPUT_NAME gmssl)
    if (WIN32)
        target_link_libraries(gmssl-bin PRIVATE Ws2_32)
    endif()
    # ... 后面的测试相关代码也包在这个if块里 ...
endif()

改成:

复制代码
# 新增一个option,默认ON表示构建命令行工具
option(BUILD_GMSSL_BIN "Build gmssl command-line tool" ON)

if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "iOS" AND BUILD_GMSSL_BIN)
    add_executable(gmssl-bin ${tools})
    target_link_libraries(gmssl-bin LINK_PUBLIC gmssl)
    set_target_properties(gmssl-bin PROPERTIES RUNTIME_OUTPUT_NAME gmssl)
    if (WIN32)
        target_link_libraries(gmssl-bin PRIVATE Ws2_32)
    endif()
    # ... 后面的测试代码也包在这个if块里 ...
endif()

编译命令为:

复制代码
cmake .. -G "Unix Makefiles" \
-DBUILD_SHARED_LIBS=OFF \
-DENABLE_COMMAND_LINE=OFF \
-DENABLE_TEST=OFF \
-DENABLE_DLOPEN=OFF \
-DBUILD_GMSSL_BIN=OFF

编译:

复制代码
make -j4

然后可以正常编译输出静态链接库文件。

相关推荐
LannyChung8 小时前
PowerShell 下 git log 中文乱码的完整排查与解决
windows·git
谙弆悕博士13 小时前
用 C 写了个 Windows 聊天室,踩了几个多线程和控制台的坑
c语言·开发语言·c++·windows·网络编程·聊天室
Data-Miner16 小时前
一个省大模型积分的 Excel 数据处理方案:脱敏生成逻辑,脚本复用把 token 降到 0
人工智能·windows·excel
无巧不成书021816 小时前
Tomcat部署JSP文件完整指南:手动部署+IDEA工程化实现 附404访问错误全排查
java·ide·windows·tomcat·intellij-idea·js
张张的快乐时光呀!16 小时前
如何配置CUDA开发环境?
windows
fatCatLA17 小时前
记一次狼狈的装机
windows
龙信科技17 小时前
【国内电子数据取证厂商龙信科技】Windows 权限维持型后门分析与防御
大数据·windows·科技·电子数据取证
DreamLife☼19 小时前
Agent与大语言模型的集成
windows·python·语言模型
云和数据.ChenGuang2 天前
python sorted函数详细剖析
开发语言·人工智能·windows·python·1024程序员节
小熊吃保安2 天前
Windows也能用 Apple Watch 解锁
windows·rust·开源