美文网首页
GmSSL编译

GmSSL编译

作者: 4c8fd9ddcb74 | 来源:发表于2021-08-10 09:57 被阅读0次

MAC 使用在guanzhi/GmSSL下载的C语言库,对其进行编译,使其生成对应的静态库。
1、下载下来之后,cd 到该文件路径,使用./config查看其所适用的环境,会出现以下问题!

image.png
解决方法:1、修改该目录下Configure、test/build.info、test/run_tests.pl中的内容`(用文本编辑器打开)`
use if $^O ne "VMS", "File::Glob" => qw/glob/;
改为
use if $^O ne "VMS", "File::Glob" => qw/:glob/;
image.png

2、两次make,会发现可以编译通过,如果过程发现无法通过rate_test测试,修改test/sm9test.c中的内容,然后两次编译,修改如下

    if (!rate_test()) {
        printf("sm9 rate pairing test failed
");
        err++;
    } else
        printf("sm9 rate pairing test passed
");
#endif

编译模拟器静态库

  1. 上述问题解决后,使用终端执行命令编译MAC版本【需要进行该文件所在文件夹才可以编译】
    ./config
    该命令是配置编译环境

编译之前先设置一下变量

export KERNEL_BITS=64 指定选择x86架构,生成为MAC端的静态库
make 生成对应的.a静态库,【darwin64-x86_64-cc 仅支持OS】
make test 进行编译
sudo make install 编译安装。
编译完成即可生成对应的.a文件

image.png
引发问题:
(1). Building for iOS Simulator, but the linked library ‘xxxxxx.a‘ was built for iOS.
解决方法:Xcode -> File -> Workspace Settings -> Build System -> Legacy Build System image.png
(2). 模拟器上运行报名:Undefined symbols for architecture x86_64 即使使用lipo -info + .a库路径 查询出来虽然是x86_64 仍然报错 image.png
(3). 打出来的.a只支持MAC上运行,并无法支持模拟器运行,请知道的大佬指教

解决方法:make 之前使用先在终端执行以下命令

export KERNEL_BITS=64

arm64、armv7、armv7s、iphone模拟器静态库【如果执行make clean 报错再次编译报名,就删掉这库重新操作】

  1. 依次在文件夹里面执行命令
# 设置编译器
export CC="clang -arch arm64"   #arm64(iphone模拟器)
#export CC="clang -arch armv7"  #armv7
#export CC="clang -arch armv7s"  #armv7s

#设置工具链路径
export PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"

# 设置开发环境目录(使用的是iphone的库,根据实际修改【OSX】)
export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
# export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer  #模拟器

# 设置SDK(根据自己电脑进行修改版本号,路径在上一步中获取)
export CROSS_SDK=iPhoneOS14.5.sdk  # 模拟器:iPhoneSimulator14.5.sdk

# 设置最小依赖版本
export IPHONEOS_DEPLOYMENT_TARGET=8.0

# 生成makefile
./Configure ios64-cross no-shared -DGMSSL_NO_TURBO
# ./Configure ios-cross no-shared -DGMSSL_NO_TURBO   #armv7  armv7s
# ./Configure iphoneos-cross no-shared -DGMSSL_NO_TURBO   #模拟器
make

相关文章

  • iOS 使用Gmssl实现SM2证书签名验签

    如果没有编译gmssl,可以看下: iOS 编译Gmssl 编译好iOS可以用的Gmssl静态库之后,需要在Gms...

  • GmSSL编译

    MAC 使用在guanzhi[https://github.com/guanzhi]/GmSSL[https://...

  • GMSSL 编译

    一、下载好GMSSL源码,终端 cd到目录下,分别编译各个版本的包./Configure ios64-cross(...

  • iOS 编译Gmssl

    最近搞了下sm2,防止自己忘记,记录下: 官方地址:Gmssl官网 官方编译文档中,介绍了怎么编译arm64的静态...

  • gmssl iOS编译

    1、git下载gmssl源代码 git clone https://github.com/guanzhi/GmSS...

  • gmssl java api 编译

    GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9等国密(国家商用密码)算法、SM2国...

  • IOS编译和安装GmSSL

    最近公司项目需要用到sm2的加签功能,IOS方面的实现找了很久也没找到,最后用了GmSSL来实现,GMSSL里面有...

  • Gmssl编译ios静态库

    1.github下载最新版本Gmssl 2.在MacOS系统下CD进入下载的Gmssl文件夹(一般下载为zip文件...

  • iOS 编译Gmssl(no-async)

    应用上架被拒: The app references non-public symbols : _getconte...

  • GmSSL的编译和使用

    个人博客地址:https://blog.yookingh.cn[https://blog.yookingh.cn]...

网友评论

      本文标题:GmSSL编译

      本文链接:https://www.haomeiwen.com/subject/rcjbvltx.html