vs编译gmssl

环境配置:

1. 需要安装perl和nasm,自行百度安装

2. 官网下载项目:http://gmssl.org

 

编译流程:

1. 以管理员身份打开vs开发人员命令窗口

2. perl Configure VC-WIN32 -prefix=../GmSSL-WIN32

3. nmake

4. nmake install

 

编译问题:

64位使用VC-WIN64A,最好指定-prefix安装目录,不然安装会默认在c盘(需要管理员权限打开vs编译工具)

报错:

打开include/openssl/evp.h 注释以下两行代码

char *EVP_get_ciphernames(int aliases);

char *EVP_get_digestnames(int aliases);

发现这样做没用,mkdef还是会生成这两个符号导致无法编译通过,所以我想出了一个非常巧妙的方法进行试验:

在编译生成libcrypto-1_1.def的时候,点击暂停编译(windows平台单击一下编译窗口即可),然后打开libcrypto-1_1.def把上面

两个符号删除掉,编译通过

### 进行ARM架构下GMSSL库的交叉编译 为了在ARM架构上成功完成GMSSL库的交叉编译,需遵循一系列特定的操作流程。这不仅涉及准备必要的软件包和支持文件,还需要配置适合于目标平台的构建选项。 #### 安装所需的依赖项和工具链 对于基于Linux系统的主机而言,确保已安装了用于ARM体系结构的目标交叉编译器及其关联的支持工具[^1]。如果目标是Android设备,则还需额外获取并安装Android SDK/NDK,因为这些组件提供了针对移动操作系统的特殊支持功能[^3]。 #### 配置CMake以适应交叉编译需求 当使用CMake作为项目管理工具时,可以通过指定`CMAKE_TOOLCHAIN_FILE`变量指向一个描述了目标硬件特性的toolchain file来实现自动化处理过程中的路径映射和其他必要调整[^2]。此步骤有助于简化后续命令执行期间可能出现的手动干预工作量。 #### 编写适用于GMSSL项目的具体指令集 考虑到不同版本间可能存在差异,在实际应用前应当参照官方文档确认最新推荐做法。下面给出了一段Python风格伪代码表示如何调用configure脚本来启动整个过程: ```bash export ANDROID_NDK=/path/to/android-ndk-rXXb # 设置环境变量指向NDK根目录 cd gmssl-root-directory # 切换到源码所在的工作空间内 ./config shared no-tests --prefix=$PREFIX # 执行配置阶段,关闭测试套件生成开关 make clean # 清理旧有残留物以便重新开始 make # 开始正式组装流水线运作 make install # 将产物部署至预设好的输出位置 ``` 上述示例中假设读者已经完成了前期准备工作,并且熟悉基本shell语法;另外请注意替换掉占位符(如`$PREFIX`, `/path/to/android-ndk-rXXb`)为真实存在的绝对地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值