赞
踩
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三个工程文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。