GMSSL编译iOS

一、GMSSL-2.x

国密SDK源码下载,对GMSSL库进行编译生成对应的静态库。执行如下命令:

  1. cd到SDK源码目录
    cd /Users/xxxx/Downloads/GMSSLV2-master
    
  2. 查看SDK适用环境
    ./config
    

    在这里插入图片描述上图中错误解决方法

     使用文本编辑器打开SDK目录下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/;
    
  3. 使用make命令进行编译
    make
    
  4. 编译armv7/armv7s架构
    • 清理编译文件
    make distclean
    
    • 设置编译器 ,编译armv7s只需将armv7替换成armv7s即可
    export CC="clang -arch armv7"
    
    • 设置工具链路径
    export PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"
    
    • 设置开发环境目录
    export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
    
    • 设置SDK,版本在开发环境目录下SDKs中查看
    export CROSS_SDK=iPhoneOS17.2.sdk
    
    • 设置最小依赖版本
    export IPHONEOS_DEPLOYMENT_TARGET=8.0
    
    • 生成makefile
    ./Configure ios-cross no-shared -DGMSSL_NO_TURBO
    
    • 构建
    make
    
  5. 编译arm64架构
    • 清理编译文件
    make distclean
    
    • 设置编译器
    export CC="clang -arch arm64"
    
    • 设置工具链路径
    export PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"
    
    • 设置开发环境目录
    export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
    
    • 设置SDK,版本在开发环境目录下SDKs中查看
    export CROSS_SDK=iPhoneOS17.2.sdk
    
    • 设置最小依赖版本
    export IPHONEOS_DEPLOYMENT_TARGET=8.0
    
    • 生成makefile
    ./Configure ios64-cross no-shared -DGMSSL_NO_TURBO
    
    • 构建
    make
    
  6. 编译i386和x86_64
    • 清理编译文件
    make distclean
    
    • 设置编译器
    export CC="clang -arch i386 -arch x86_64"
    
    • 设置工具链路径
    export PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"
    
    • 设置开发环境目录
    export CROSS_TOP=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
    
    • 设置SDK,版本在开发环境目录下SDKs中查看
    export CROSS_SDK=iPhoneSimulator17.2.sdk
    
    • 设置最小依赖版本
    export IPHONEOS_DEPLOYMENT_TARGET=8.0
    
    • 生成makefile
    ./Configure iphoneos-cross no-shared -DGMSSL_NO_TURBO 
    
    • 构建
    make
    
  7. 静态库合并
    • 合并命令
    lipo -create 模拟器.a文件路径  真机.a文件路径 -output 合成的.a文件路径
    
    • 查看静态库信息
    lipo -info  .a文件路径
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/4707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue.js(过渡)

1.过渡 Vue 在插入、更新或者移除 DOM 时&#xff0c;提供多种不同方式的应用过渡效果。 Vue 提供了内置的过渡封装组件&#xff0c;该组件用于包裹要实现过渡效果的组件。 语法格式 <transition name "nameoftransition"><div></div> </tr…

Android 学习 鸿蒙HarmonyOS 4.0 第二天(项目结构认识)

项目结构认识 和 了解&#xff1a; 工程目录下的结构如下&#xff1a; 首先能看到有两个.开头的文件&#xff0c;分别是.hvigor 和 .idea。这两个文件夹都是与构建有关系的&#xff0c; 如果你开发过安卓app&#xff0c;构建完会生成一个apk安装包&#xff0c;鸿蒙则是生成hap…

【C++风云录】进入语音识别与自然语言处理的世界:探索C++库的功能与应用场景

构建智能语音应用&#xff1a;深入了解C语音识别与自然语言处理库 前言 语音识别和自然语言处理是人工智能领域的重要研究方向&#xff0c;它们在自动语音识别、机器翻译、智能对话等方面有着广泛的应用。在这个领域&#xff0c;有许多优秀的开源和商业的工具和库可供选择&am…

mxnet.gluon.rnn及mxnet.symbol实现LSTM教程

基于mxnet.symbol的基本使用以及模型加载与保存 mxnet基本使用以及模型加载与保存 mxnet.symbolRNN-GRU-LSTM-Bi官网教程 基于mxnet的LSTM实现(mx.rnn.LSTMCellsymbol) 基于mxnet.gluon.rnn的基本使用以及模型加载与保存 LSTM Mxnet Implementation-手写 mxnet.gluon.rnn.LSTM中…

K8s: Helm包管理工具的应用以及项目分环境部署

Helm 概述与安装 1 ) 概述 k8s中官方包管理工具, 官网: https://helm.sh/用 Yaml 管理多个应用同时部署 不需要在不同的yaml中写两遍&#xff0c;执行两遍解决一键部署的问题&#xff0c;联合部署 实现了部署的版本管理 可以实现版本回滚 应用和配置分离 2 &#xff09;安装 …

阿里云RocketMQ消费MQTT消息

业务背景&#xff1a; 项目中涉及的消息队列既有RocketMQ&#xff0c;又有MQTT&#xff0c;均为阿里云提供&#xff08;阿里云有专门的“微消息队列 MQTT 版”模块&#xff0c;但博主公司消息队列的实例都在“消息队列 RocketMQ 版”模块下&#xff0c;只是实例不同&#xff0c…

【Oracle】python调取oracle数据教程

目录 &#xff08;1&#xff09;安装python和相关库 1.python的下载和安装 2.python安装cx_Oracle库和pandas库 3.本机安装instantclient 数据库客户端 先安装instantclient 然后设置环境变量 &#xff08;2&#xff09;准备好连接Oracle数据库地址等五项信息 &#xf…

Java基础(3)String、StringBuffer、StringBuilder

在Java中&#xff0c;字符串处理是日常开发的重要组成部分。主要有三种类型的类用于创建和操作字符串&#xff1a;String、StringBuffer和StringBuilder。虽然这三个类都能够处理字符串&#xff0c;但它们在功能和性能方面存在显著差异。 String String是不可变的&#xff08…

VUE3与Uniapp 五 (v-if、v-show和template的使用)

<template><!-- v-if如果是false&#xff0c;则不会出现在DOM中&#xff0c;不会被渲染&#xff1b;v-show如果为false&#xff0c;则会出现在DOM中&#xff0c;并加载资源&#xff08;如图片&#xff09;&#xff0c;只是CSS隐藏了。 --><view v-if"day1&…

秋招后端开发面试题 - Java多线程(上)

目录 Java多线程前言面试题线程和进程&#xff1f;说说线程有几种创建方式&#xff1f;为什么调用 start() 方法时会执行 run() 方法&#xff0c;那怎么不直接调用 run() 方法&#xff1f;线程有哪些常用的调度方法&#xff1f;线程有几种状态&#xff1f;守护线程了解吗&#…

深入理解汇编中的ZF、OF、SF标志位和条件跳转

本节课在线学习视频&#xff1a;https://pan.quark.cn/s/bbc4781e5336 汇编语言中的程序控制流常依赖于处理器的状态标志来进行决策。在x86架构中&#xff0c;ZF&#xff08;Zero Flag&#xff09;、OF&#xff08;Overflow Flag&#xff09;和SF&#xff08;Sign Flag&#x…

Linux(Centos 7)环境下安装wget,并且更换阿里云镜像

Linux(Centos 7) Minimal 安装后&#xff0c;由于没有预装wget&#xff0c;在使用wget命令去下载安装相关应用时&#xff0c;提示&#xff1a;“wget: command not found” 先在Linux服务器窗口中&#xff0c;输入如下命令&#xff0c;检查Linux服务器有没有安装过wget。 rpm -…

Django信号(Signals)使用案例:自动化工作流程

Django信号&#xff08;Signals&#xff09;是一种可以让应用程序组件之间进行解耦的机制。它允许在特定事件发生时发送信号&#xff0c;其他组件可以监听这些信号并做出相应的处理。 在自动化工作流程中&#xff0c;Django信号可以用来触发自动化任务或流程。以下是一个使用D…

deepflow grafana plugin 编译问题解决

修改tsconfig.js 增加"noImplicitAny": false&#xff0c;解决代码类型没有指定&#xff0c;显示Any 错误 To solve the error, explicitly set the parameters type to any, use a more specific type or set noImplicitAny to false in tsconfig.json. https://b…

【大学生电子竞赛题目分析】——2023年H题《信号分离装置》

今年的大赛已临近落幕&#xff0c;笔者打算陆续对几个熟悉领域的题目作一番分析与讨论&#xff0c;今天首先分析H题。 网上有一些关于H题的分析&#xff0c;许多都是针对盲信号分析的。然而本题具有明确的信号频率范围&#xff0c;明确的信号可能频率&#xff0c;明确的信号波…

Jmeter Beanshell 设置全局变量

//获取token import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray; import java.util.*; import org.apache.jmeter.util.JMeterUtils; //获取可上机机器 String response prev.getResponseDataAsString(); JSONObject responseObect JSONObjec…

什么是跨域? 出现原因及解决方法

什么是跨域? 出现原因及解决方法 什么是跨域 跨域&#xff1a;浏览器对于javascript的同源策略的限制 。 同源政策的目的&#xff0c;是为了保证用户信息的安全&#xff0c;防止恶意的网站窃取数据。 设想这样一种情况&#xff1a;A 网站是一家银行&#xff0c;用户登录以后…

K8S哲学 - statefulSet 灰度发布

kubectl get - 获取资源及配置文件 kubectl get resource 【resourceName -oyaml】 kubectl create - 指定镜像创建或者 指定文件创建 kubectl create resource 【resourceName】 --imagemyImage 【-f my.yaml】 kubectl delete kubectl describe resource resourc…

OceanBase 分布式数据库【信创/国产化】- 登录 OceanBase 租户

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- 登录 OceanBase 租户前言OceanBase 数据更新架构OceanBase 租户架构登录系统租户通过 MySQL 客户端登录通过 OBClient 登录登录最佳实践登录用户租户登录 Meta 租户OceanBase 分布式数据库【信创/国产化…

UCOSIII章节介绍

UCOSIII章节介绍 一、第一部分&#xff08;第一章 至 第三十二章&#xff09;1、整体介绍2、单章介绍第一章 至 第三章&#xff1a;总体概览第四章 至 第五章&#xff1a;准备工作&#xff0c;配置KEIL工程环境第六章&#xff1a;准备工作&#xff0c;KEIL仿真介绍第七章&#…