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相关推荐

  1. linux 编译mqtt静态库_Windows 编译 MQTT C++

    如果遇到报错 ADD_LIBRARY cannot create target "paho-mqtt3c" because another target with   the sa ...

  2. android 静态编译链接,Android NDK:使用预编译的静态库链接

    我正在尝试将Jnetpcap移植到Android,以便将其用于解析.pcap文件.Jnetpcap是libpcap的java包装器,它使用JNI.我已经使用android的源代码树将libpcap编译 ...

  3. linux编译c++ 静态库,C/C++ 条件编译静态库

    ==>windows 下方法: 1.方法一:VS工程中中直接添加 1.1在VS的属性->常规->附加库目录,添上文件夹的路径:例如:lib/x64: 1.2输入的附加依赖项,添加上库 ...

  4. cmake 编译 linux 库,使用CMake编译跨平台静态库

    在开始介绍如何使用CMake编译跨平台的静态库以前,先讲讲我在没有使用CMake以前所趟过的坑.由于不少开源的程序,好比png,都是自带编译脚本的.咱们可使用下列脚原本进行编译:linux . / c ...

  5. PHP编译为静态库,Linux下将Tinyxml编译为静态库

    转载请注明来源:Linux下将Tinyxml编译为静态库 一个应用需要在linux服务器上运行,不能保证每个服务器都有应用依赖的库,又懒得每个服务器都去安装下,也不太现实,于是就将应用所用到的库全部编 ...

  6. Linux中gcc的编译、静态库和动态库的制作

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 Linux中gcc的编译.静态库.动态库 文章目录: 1 gcc的编译过程 1.1 gcc的编译过程 1.2 gcc的常用参数 2 gcc 静态库的制 ...

  7. Linux基础——gcc编译、静态库与动态库(共享库)

    Linux基础--gcc编译.静态库与动态库(共享库) https://blog.csdn.net/daidaihema/article/details/80902012 Linux基础--gcc编译 ...

  8. pytorch 矩阵相乘_编译PyTorch静态库

    背景 众所周知,PyTorch项目作为一个C++工程,是基于CMake进行构建的.然而当你想基于CMake来构建PyTorch静态库时,你会发现: 静态编译相关的文档不全: CMake文件bug太多, ...

  9. 将RTKLIB编译成静态库

    rtklib编译 在写自己的程序时,想要调用rtklib.h,和它的一些文件来进行运行,想要将rtklib编译成静态库安装在系统的目录下,这样基于rtklib的二次开发就不用再使用源码了,直接引用静态 ...

最新文章

  1. oracle查找异常中断的sql,oracle查询sql报错SqlExceptionHelper:131 ORA-00933: SQL command not properly ended...
  2. 周末一起用文本数据库玩玩Code First
  3. kali入侵windows
  4. Apache Kafka-通过concurrency实现并发消费
  5. 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!...
  6. 【NGINX+PHP7.3+MYSQL】安装指南
  7. 物联网设备的互操作性问题探讨
  8. vmware安装问题:Microsoft Runtime DLL安装程序未能完成安装
  9. 解决导出word迅雷读取地址和下载出错
  10. 这些都是当年在C/C++上折的地儿…
  11. oracle+st_geometry
  12. MYSQL----(3)SQL 基本操作
  13. 固件 日立 硬盘_最强性价比储存方案体验:这硬盘盒,真香!
  14. 当U盘内的文件夹都成了1KB的快捷方式的解决方法
  15. cad汉仪长仿宋体_长仿宋体字体下载 cad工程机械绘图工程制图国标字体下载
  16. 打印机扫描显示服务器拒绝访问,怎么解决打印机拒绝访问问题?打印机拒绝访问的解决方法...
  17. git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支
  18. FastQC 配置 及 基本使用
  19. 文件或目录损坏且无法读取/此卷不包含可识别的文件系统等无法访问错误-CHKDSK被中止-硬盘问题(二)
  20. Packet Tracer - 使用 CLI 配置并验证站点间 IPsec VPN

热门文章

  1. [转]mysql 数据类型
  2. eclipse 重启/打开内置浏览器
  3. activiti任务TASK
  4. windows程序移植linux
  5. 上传图片时出现Request 对象 错误 'ASP 0104 80004005'
  6. SQL Server日志清除的两种方法 .
  7. [转帖][实用]Linux 释放内存方法
  8. Linux环境编译安装Mysql以及PHP中文乱码解决
  9. LAMP 关键数据集锦技术选项参考
  10. 淘宝Tengine服务器开源