位置: 编程技术 - 正文
推荐整理分享vs2010 编译mosquitto win32版本,开启websockets,实现消息推送(vs2010编译器在哪里?),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:vs2010编译在哪,vs2010编译器在哪里?,vs2010编译器在哪里?,vs2019编译按钮在哪,vs2010如何编译,VS2010 编译 qt5.8,VS2010 编译 qt5.8,VS2010 编译 qt5.8,内容如对您有帮助,希望把文章链接给更多的朋友!
前言:因为之前没有怎么碰vs,只搞过cygwin,而cygwin上搞了好久都搞不定,以至于重新整理思路,这window上的版本应该怎么去编译。一直不知道怎么搞,只能边看其他教程,边自己搞着,连续几天下了班就可以研究编译,特别是在开启websockets的时候,加上libwebsockets库,对于小白来说,特别痛苦。也罢,最后也成功编译。
编译的电脑:MacBook Pro 虚拟机win7,bit,1.5G的内存 参考: 下载vs
我下了个旗舰版的,不过只有天试用期,无妨,编译就够了。 ps:之前用过vs去编译,然后各种莫名其妙,如果有同学知道为什么的,请留言。
2. 下需要的库。c-ares 我下的是当时最新的1..0,c-ares-1..0.tar.gz pthreads 2.9.1,pthreads-w-2-9-1-release.zip openssl 我下的是当时最新的1.0.2a,WinOpenSSL-1_0_2a.exe cmake 我下的是当时最新的3.2.2,cmake-3.2.2-win-x.exe libwebsocket 1.4,libwebsockets-1.4-chrome-firefox-.tar.gz mosquitto 我下的是当时最新的1.4.2,mosquitto-1.4.2.tar.gz
3. 安装库。安装文件,源码文件都放在C:application 1)先安装vs,我是完全安装,为了减少其他因素的影响。 2)解压c-ares,路径为C:applicationc-ares-1..0 3)解压pthreads,然后把Pre-built.2里include的文件复制到C:Program Files (x)Microsoft Visual Studio .0VCinclude Pre-built.2里lib的文件复制到C:Program Files (x)Microsoft Visual Studio .0VClib 4)安装openssl,路径为C:OpenSSL-Win 5)安装cmake,在开始菜单生成了cmake-gui.exe程序。 6)解压libwebsocket,这是源码来的,需要vs编译一下。 打开cmake-gui,如下
在第三步的时候,弹出个对话框,选择Visual Studio 即可,不要选择bit,切记。 等一会儿,如下
在C:build-websocket就生成了vs的工程,找到libwebsockets.sln,双击打开。
生成了比较重要的东西,后面要用到: C:build-websocketbinMinSizeRel libeay.dll ssleay.dll websockets.dll C:build-websocketlibMinSizeRel websockets.lib ZLIB.lib
7)解压mosquitto,路径为C:applicationmosquitto-1.4.2
4. 准备编译mosquitto1.4.2打开cmake-gui,依次点1,2,3步,最后出现c-ares找不到
然后配置相关选项,如下
在这里C:build,用vs打开mosquitto.sln,在“输出”窗口发现好多错误
原来是这些文件里面日期字符串的星期几导致的。于是把上面提到的文件里的乱码删掉,即把“周几”删掉,如:
mosquittopp.vcxproj文件中 报错,名称不能以“>”字符(十六进制值 0x3E)开头。后面还有几处类似改法。
重新打开mosquitto.sln,项目右键开始生成。
报一推错误,大意是libwebsockcets的函数找不到。
在解决方案资源管理器中找到mosquitto,右键,属性。
在打开的mosquitto属性页里,依次打开配置属性,链接器,输入,附加依赖性。
点击右边的小三角,出来附加依赖项页面。把最后的websockets.lib改成正确的lib文件路径。
再项目右键重新编译一下。
如果遇到无法打开mosquitto.lib,表明某个子工程需要依赖libmosquitto这个工程,在子工程右键“项目依赖项”里面勾上libmosquitto就可以了。
如果遇到一堆红色的错误,无法解析外部符号,就表明某些库没有引用,就要在附加依赖性添加对应的lib。或者复制到 C:Program Files (x)Microsoft Visual Studio .0VClib
如果遇到缺少某个.h头文件的,需要把对应的头文件复制到C:Program Files (x)Microsoft Visual Studio .0VCinclude
此时主程序在: C:buildsrcMinSizeRelmosquitto.exe C:buildsrcMinSizeRelmosquitto_passwd.exe
C:buildclientMinSizeRelmosquitto_pub.exe C:buildclientMinSizeRelmosquitto_sub.exe
当然,这里选择Release也是可以的。
如果想把生成的东西放在一起,就要填输出路径了。子工程右键属性,配置属性,常规,输出目录,改维c:buildoutput,其他子工程也一样修改。
改好后,重新生成。
此时,还是打不开主程序的,提示缺少websockets.lib, 于是复制C:build-websocketlibMinSizeRelwebsockets.lib -> c:buildoutput 再把需要的w文件搬过来,如下 C:applicationmosquitto-1.4.2mosquitto.conf -> c:buildoutput C:build-websocketbinMinSizeRellibeay.dll -> c:buildoutput C:build-websocketbinMinSizeRelssleay.dll -> c:buildoutput C:pthreadsPre-built.2dllxpthreadVC2.dll -> c:buildoutput 现在的目录如下:打开看看,可以运行。
先把mosquitto.conf里的Extra listeners开启一下:listener ,protocol websockets 测试一下mqtt和websockets方式,同时开启的方式:
如出现错误0xd, 装vcredist_x.exe即可解决。
ps:在完成编译之前遇到好多问题,vs报好多错误,解决不了,特别是最后编译通过打开exe就报应用程序不能正常启动 (0xcb)。特别吐血,在绝望之际,查到位编译使用位库,或者位编译使用位库就回出现这种情况,于是我把原来cmake生成vs工程的配置由vs x,改成vs x,即后来vs主界面中间显示WIN,而不是x,坑了好久,反正以后记住了,无论系统是不是位的,一律使用位库和位编译。
到此,编译完成,我会把编译过程上传到csdn,敬请关注。
补充资源链接:点我跳转
Android 编程下 Touch 事件的分发和消费机制 本文转自:
Android酷炫实用的开源框架(UI框架) Android酷炫实用的开源框架(UI框架)前言忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件
Android快速开发--使用ORMLite操作数据库 OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言。在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来
标签: vs2010编译器在哪里?
本文链接地址:https://www.jiuchutong.com/biancheng/382254.html 转载请保留说明!友情链接: 武汉网站建设