本文属于《GmSSL国密加密算法库使用系列教程》之一,欢迎查看其它文章。

我们知道GmSSL有一个命令行工具gmssl.exe,可以通过命令实现很多的操作,同时GmSSL还提供了动态库,所以如果我们想调用GmSSL,有2种方法:

  • 通过启动一个外部进程gmssl.exe的方式,传入执行命令,然后获取执行结果;
  • 通过动态库的方式,直接调用函数。

以上2种方式,都有很多软件采用。

我们这里仅讨论通过动态库调用GmSSL,以下在Qt工程中调用GmSSL加密库为例进行说明。

一、在Win下调用GmSSL加密库

本机GmSSL默认安装在C:\Program Files\GmSSL目录下。

在pro文件中,在win32括号内,添加头文件路径和链接lib如下:

win32 {INCLUDEPATH += $$quote(C:/Program Files/GmSSL/include)
LIBS += -L$$quote(C:/Program Files/GmSSL/lib) -llibcrypto -llibssl
}

然后在工程中就可以调用GmSSL函数了。

运行时,将GmSSL安装目录C:\Program Files\GmSSL\bin下的,libcrypto-1_1-x64.dll拷贝到,与exe同一目录下。

二、在Linux下调用GmSSL加密库

通常,为了与系统中OpenSSL不产生冲突,我们会将GmSSL编译为静态库。

仅需在pro文件中,unix括号内添加如下:

unix {INCLUDEPATH += /usr/local/gmssl/include
LIBS += -L/usr/local/gmssl/lib -lcrypto -ldl
}

然后,在源文件中正常调用GmSSL函数即可。

由于链接的是静态库,所以,应用程序运行时,可以不依赖GmSSL的库文件,独立运行。


若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在Qt工程中调用GmSSL相关推荐

  1. cocos2dx:addAnimation如何创建精灵动画并在工程中调用展示

    cocos2dx:addAnimation如何创建精灵动画并在工程中调用展示 设备/引擎:Mac(11.6)/cocos 开发工具:Xcode(13.0) 开发需求:cocos2dx:addAnima ...

  2. 【qt】qt工程中包含c++标准库头文件,提示找不到。

    问题: 在qt工程中包含c++标准库头文件,提示找不到. 如下: #include <vector> using namespace std; 解决办法: 在*.pro文件中增加vecto ...

  3. c++调用python接口打包_在QT C++中调用 Python并将软件打包发布(裸机可运行)

    为了提高工作效率,需要一个可以自动生成多份相关联的word文档免去繁琐复制粘贴工作的软件.最后选定使用QT C++做界面和主要逻辑程序设计,对word的操作使用python写好对应的函数,然后在QT中 ...

  4. Qt工程中如何添加.pri文件

    pri文件中的i 是包含(include)的首字母.类似于C.C++中的头文件就是我们可以把 .pro 文件内需要include的一部分或者多个工程相同的部分单独放到一个 .pri 文件内,然后包含到 ...

  5. Android中打包含有Activity以及资源文件的jar包在工程中调用

    如何将资源以及activity文件打包成jar文件供项目调用,从android的官方文档中找到的完美的解决,这里做一个总结. 最近刚刚发布了一款小应用<诗词大全>,有兴趣的朋友请实用提出您 ...

  6. Qt Creator中调用Python的常见问题

    新建项目 创建python文件 python文件只是简单的输出"hello world" # This Python file uses the following encodin ...

  7. iOS开发笔记--OC工程中调用不了Swift代码

    今天在OC工程里面直接引入了一个第三方的Swift包,结果OC文件里面死活找不到Swift对象.打开 "工程名-swift.h"文件内容似乎是空的.(正常的文件应该会有很多OC方法 ...

  8. Qt工程中c++实现wrl到pcd格式转换

    pcl1.8.0+QT5.7.0+vs2013 win7 x64环境配置 //读取文本型和二进制型点云数据 void onOpen() {//打开文件QString fileName = QFileD ...

  9. linux下QT工程调用opencv、libtorch,并用cmake编译,及其遇到的一些问题的解决方法

    linux下QT工程调用opencv.libtorch,并用cmake编译: 文章目录 一.新建QT工程 二.编写CMakeLists.txt文件 三.各个文件的内容如下: 1.mainwindow. ...

  10. 【Qt】Qt中调用python接口

    在Qt程序中调用python函数从步骤 1.在pro中添加python的头文件路径和库 INCLUDEPATH += /usr/include/python3.4 LIBS += -L /usr/li ...

最新文章

  1. 使用 EasyBCD 安装Ubuntu 14.04 Error 15: file not found错误的解决方法
  2. android listview 中的checkbox,Android中ListView与CheckBox的使用,及问题解决
  3. java错误 找不到或无法加载主类
  4. Shell编程之if语法练习(LNMP)全过程
  5. Docker网络-(六)
  6. 关于ng-class中添加多个样式类的解决方案
  7. 初学者虚拟机使用虚拟机
  8. 一个奇妙、离奇的算法题
  9. TwinCAT 3 轴程序
  10. win7下VS2012配置DirectShow+Opencv并且多摄像头采集
  11. get/post在线接口
  12. 从牛顿-莱布尼兹公式到变限积分求导
  13. Arduino Nano技术指标
  14. Python入门基础篇 No.26 —— 列表_复制列表_排序_revered逆序_max_min_sum
  15. 计算机网络教室财产登记表,固定资产清查登记表-资产管理.DOC
  16. 100725B Banal Tickets
  17. 《网络工程师的5天修炼》思维导图——第一天
  18. Nginx https 协议配置 ssl_protocols 的相关问题
  19. 晚上睡眠质量不好怎么办?试试这些助眠方法,让你一招入睡
  20. VS 链接问题 warning C4273: dll 链接不一致

热门文章

  1. python糖尿病数据挖掘
  2. ListView控件商城列表
  3. adb命令从手机端复制数据库文件到PC
  4. WinRAR5.01注册码附注册机
  5. 微博批量发布,微博定时发布,批量删除,批量评论等功能的实现
  6. 第31讲 聊天室程序
  7. 蓝牙耳机测试软件apk_延迟测试app下载-蓝牙耳机延迟测试软件下载v1.9.1- 游侠下载站...
  8. mysql数据库管理与开发pdf_深入浅出mysql数据库开发、优化与管理维护.pdf
  9. APMCM亚太地区数学建模历年赛题
  10. xp php环境搭建 iis,Windows XP环境下快速配置IIS+PHP详细过程