linux 编译mqtt静态库_编译MQTT C++ Client
nmake -f ms\nt.mak(这是静态库,动态库是ntdll.mak)
nmake -f ms\nt.mak test(测试命令,如果成功则最后显示“passed all tests”字样)
nmake -f ms\nt.mak install 成功则会在C:\openss\win64目录下生成bin、include、lib、ssl四个文件夹
如果需要编译动态库,nmake -f ms\nt.mak改成动态库版本就可以了。
清除上次OpenSSL动态库的编译,以便重新编译:nmake -f ms\ntdll.mak clean 清除上次OpenSSL静态库的编译,以便重新编译:nmake -f ms\nt.mak clean
备注:利用openssl生成RSA公私密钥对。
在Windows环境下,打开OPENSSL安装目录bin文件下面的openssl.exe。
生成RSA私钥:genrsa -out rsa_private_key.pem 1024
该命令会生成1024位的私钥
生成RSA公钥:rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem此时,我们可以看到一个文件名为rsa_public_key.pem的文件,打开它,
可以看到-----BEGIN PUBLIC KEY-----开头,-----END PUBLIC KEY-----结尾的没有换行的字符串,这个就是公钥
把RSA私钥转换成PKCS8格式:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt
生成的结果就是PKCS8格式的私钥
4、安装cppunit(cpp单元测试件)下载地址:http://downloads.sourceforge.net/cppunit/cppunit-1.12.1.tar.gz,如果不需要测试可以省略这一步。一般我们编译cppunit_dll工程,同时产生lib和dll文件
里面有vc6的工程文件,用vs2017打开,升级工程后,编译容易出现MSB3073的错误,编译完成后,copy的时候提示找不到文件。需要做如下修改
(1)General\TargetName中,$(ProjectName)-->$(ProjectName)d,而cppunit_dll工程比较特殊,它需要在cppunitd_dll中间加"d",没办法使用$(ProjectName),可直接写为cppunitd_dll
(2)Linker\General\Output Files中,DebugDll\cppunit_dll.dll-->DebugDll\$(TargetName)$(TargetExt)
(3)Linker\Advanced\Import Libraries中,.\DebugDll\cppunit_dll.lib-->.\DebugDll\$(TargetName).lib
(4)PostBuild Event\Command Line中:改为:
copy "$(TargetPath)" ..\..\lib\$(TargetName)$(TargetExt)
copy "$(TargetDir)$(TargetName).lib" ..\..\lib\$(TargetName).lib5、官网c++Mqtt Client 地址https://github.com/eclipse/paho.mqtt.cpp
使用git下载git clone https://github.com/eclipse/paho.mqtt.cpp,进入刚刚下载的paho.mqtt.cpp文件中,将mqtt的c的源码包下载下来git clone https://github.com/eclipse/paho.mqtt.c.git
新版的mqtt文件夹里没有sln文件,用cmake-gui生成sln文件,而后用vs2017打开编译,openssl路径;或者执行paho.mqtt.c文件夹下的cbuild批处理文件(git下来的是vs2015配置,vs2017则是
"D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat",具体的路径请根据自己安装配置),这里如果是批处理的话openssl的安装目录必须是c:\OpenSSL-Win64;
cmake-gui,Configure选用Visual Studio 15 2017 Win64,Generate后,可以选定OPENSSL_LIB OPENSSL_INCLUDE_DIR OEPENSSLCRYPTO_LIB的路径。
使用cmake-gui,产生sln文件,在一次General之后可以选定PAHO_MQTT_C_LIB和PAHO_MQTT_C_PAHT和openssl相关路径。然后打开工程编译就可以。
如果不行产生ZERO_CHECK,在CMakelist文件中加入SET(CMAKE_SUPPRESS_REGENERATION 1)
原来的CMakeLists文件比较庞杂,这是精简后的phot.mqtt.c/src/CMakeList phot.mqtt.c下的CMakeList:phot.mqtt.c/CMakeLists(下载完成后修改成文件名为CMakeList),去除了ZERO_CHECK、INSTALL、 PACKAGE三个工程文件。
linux 编译mqtt静态库_编译MQTT C++ Client相关推荐
- linux 编译mqtt静态库_Windows 编译 MQTT C++
如果遇到报错 ADD_LIBRARY cannot create target "paho-mqtt3c" because another target with the sa ...
- android 静态编译链接,Android NDK:使用预编译的静态库链接
我正在尝试将Jnetpcap移植到Android,以便将其用于解析.pcap文件.Jnetpcap是libpcap的java包装器,它使用JNI.我已经使用android的源代码树将libpcap编译 ...
- linux编译c++ 静态库,C/C++ 条件编译静态库
==>windows 下方法: 1.方法一:VS工程中中直接添加 1.1在VS的属性->常规->附加库目录,添上文件夹的路径:例如:lib/x64: 1.2输入的附加依赖项,添加上库 ...
- cmake 编译 linux 库,使用CMake编译跨平台静态库
在开始介绍如何使用CMake编译跨平台的静态库以前,先讲讲我在没有使用CMake以前所趟过的坑.由于不少开源的程序,好比png,都是自带编译脚本的.咱们可使用下列脚原本进行编译:linux . / c ...
- PHP编译为静态库,Linux下将Tinyxml编译为静态库
转载请注明来源:Linux下将Tinyxml编译为静态库 一个应用需要在linux服务器上运行,不能保证每个服务器都有应用依赖的库,又懒得每个服务器都去安装下,也不太现实,于是就将应用所用到的库全部编 ...
- Linux中gcc的编译、静态库和动态库的制作
欢迎大家关注笔者,你的关注是我持续更博的最大动力 Linux中gcc的编译.静态库.动态库 文章目录: 1 gcc的编译过程 1.1 gcc的编译过程 1.2 gcc的常用参数 2 gcc 静态库的制 ...
- Linux基础——gcc编译、静态库与动态库(共享库)
Linux基础--gcc编译.静态库与动态库(共享库) https://blog.csdn.net/daidaihema/article/details/80902012 Linux基础--gcc编译 ...
- pytorch 矩阵相乘_编译PyTorch静态库
背景 众所周知,PyTorch项目作为一个C++工程,是基于CMake进行构建的.然而当你想基于CMake来构建PyTorch静态库时,你会发现: 静态编译相关的文档不全: CMake文件bug太多, ...
- 将RTKLIB编译成静态库
rtklib编译 在写自己的程序时,想要调用rtklib.h,和它的一些文件来进行运行,想要将rtklib编译成静态库安装在系统的目录下,这样基于rtklib的二次开发就不用再使用源码了,直接引用静态 ...
最新文章
- oracle查找异常中断的sql,oracle查询sql报错SqlExceptionHelper:131 ORA-00933: SQL command not properly ended...
- 周末一起用文本数据库玩玩Code First
- kali入侵windows
- Apache Kafka-通过concurrency实现并发消费
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!...
- 【NGINX+PHP7.3+MYSQL】安装指南
- 物联网设备的互操作性问题探讨
- vmware安装问题:Microsoft Runtime DLL安装程序未能完成安装
- 解决导出word迅雷读取地址和下载出错
- 这些都是当年在C/C++上折的地儿…
- oracle+st_geometry
- MYSQL----(3)SQL 基本操作
- 固件 日立 硬盘_最强性价比储存方案体验:这硬盘盒,真香!
- 当U盘内的文件夹都成了1KB的快捷方式的解决方法
- cad汉仪长仿宋体_长仿宋体字体下载 cad工程机械绘图工程制图国标字体下载
- 打印机扫描显示服务器拒绝访问,怎么解决打印机拒绝访问问题?打印机拒绝访问的解决方法...
- git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支
- FastQC 配置 及 基本使用
- 文件或目录损坏且无法读取/此卷不包含可识别的文件系统等无法访问错误-CHKDSK被中止-硬盘问题(二)
- Packet Tracer - 使用 CLI 配置并验证站点间 IPsec VPN