在Qt工程中调用GmSSL

本文属于《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工程调用ROS库可以通过以下步骤实现: 1. 首先,在Qt项目的.pro文件添加ROS相关的依赖库及头文件路径。ROS库通常存放在/opt/ros/<distro>/lib目录下,头文件存放在/opt/ros/<distro>/include目录下。可以在.pro文件添加类似如下语句: ``` LIBS += -L/opt/ros/<distro>/lib -lroscpp -lrosconsole -lrostime INCLUDEPATH += /opt/ros/<distro>/include ``` 2. 确定Qt工程需要使用ROS的地方,例如,在特定的按钮点击事件执行ROS相关操作。 3. 通过Qt的信号槽机制,将按钮点击事件连接到ROS操作的槽函数。首先在头文件添加槽函数的声明,然后在.cpp文件实现槽函数。槽函数可以直接调用ROS的相关接口进行操作,例如发布消息、订阅话题等。 4. 在Qt工程,需要启动ROS的核心节点(如rosmaster)才能正常使用ROS库。可以在程序的入口函数添加启动ROS节点的代码,例如: ``` int main(int argc, char *argv[]) { ros::init(argc, argv, "qt_ros_node"); ros::NodeHandle nh; // ROS相关操作 return a.exec(); } ``` 注意,需要在CMakeLists.txt添加Qt相关的依赖项,以使Qt工程正常编译链接ROS库。可以在CMakeLists.txt添加类似如下语句: ``` find_package(catkin REQUIRED COMPONENTS roscpp ) include_directories( ${catkin_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ) target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${Qt5Widgets_LIBRARIES} ) ``` 通过以上步骤,Qt工程就可以成功调用ROS库,并实现与ROS系统的交互。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值