vs2010 編譯mosquitto win32版本,開啟websockets,實現訊息推送
廢話少說,開始~
1. 下載vs2010
我下了個旗艦版的,不過只有30天試用期,無妨,編譯就夠了。
http://www.xpgod.com/soft/6637.html
ps:之前用過vs2008去編譯,然後各種莫名其妙,如果有同學知道為什麼的,請留言。
2. 下需要的庫。
3. 安裝庫。
安裝檔案,原始碼檔案都放在C:\application\
1)先安裝vs2010,我是完全安裝,為了減少其他因素的影響。
2)解壓c-ares,路徑為C:\application\c-ares-1.10.0
3)解壓pthreads,然後把Pre-built.2裡include的檔案複製到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include
Pre-built.2裡lib的檔案複製到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib
4)安裝openssl,路徑為C:\OpenSSL-Win32
5)安裝cmake,在開始選單生成了cmake-gui.exe程式。
6)解壓libwebsocket,這是原始碼來的,需要vs2010編譯一下。
開啟cmake-gui,如下
在第三步的時候,彈出個對話方塊,選擇Visual Studio 10 2010即可,不要選擇64bit,切記。
等一會兒,如下
在C:\build-websocket就生成了vs的工程,找到libwebsockets.sln,雙擊開啟。
生成了比較重要的東西,後面要用到:
C:\build-websocket\bin\MinSizeRel libeay32.dll ssleay32.dll websockets.dll
C:\build-websocket\lib\MinSizeRel websockets.lib ZLIB.lib
7)解壓mosquitto,路徑為C:\application\mosquitto-1.4.2
4. 準備編譯mosquitto1.4.2
開啟cmake-gui,依次點1,2,3步,最後出現c-ares找不到
然後配置相關選項,如下
在這裡C:\build,用vs2010開啟mosquitto.sln,在“輸出”視窗發現好多錯誤
原來是這些檔案裡面日期字串的星期幾導致的。於是把上面提到的檔案裡的亂碼刪掉,即把“周幾”刪掉,如:
mosquittopp.vcxproj檔案中 報錯,名稱不能以“>”字元(十六進位制值 0x3E)開頭。後面還有幾處類似改法。
重新開啟mosquitto.sln,專案右鍵開始生成。
報一推錯誤,大意是libwebsockcets的函式找不到。
在解決方案資源管理器中找到mosquitto,右鍵,屬性。
在開啟的mosquitto屬性頁裡,依次開啟配置屬性,連結器,輸入,附加依賴性。
點選右邊的小三角,出來附加依賴項頁面。把最後的websockets.lib改成正確的lib檔案路徑。
再專案右鍵重新編譯一下。
如果遇到無法開啟mosquitto.lib,表明某個子工程需要依賴libmosquitto這個工程,在子工程右鍵“專案依賴項”裡面勾上libmosquitto就可以了。
如果遇到一堆紅色的錯誤,無法解析外部符號,就表明某些庫沒有引用,就要在附加依賴性新增對應的lib。或者複製到
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib
如果遇到缺少某個.h標頭檔案的,需要把對應的標頭檔案複製到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include
此時主程式在:
C:\build\src\MinSizeRel\mosquitto.exe
C:\build\src\MinSizeRel\mosquitto_passwd.exe
C:\build\client\MinSizeRel\mosquitto_pub.exe
C:\build\client\MinSizeRel\mosquitto_sub.exe
當然,這裡選擇Release也是可以的。
如果想把生成的東西放在一起,就要填輸出路徑了。子工程右鍵屬性,配置屬性,常規,輸出目錄,改維c:\build\output\,其他子工程也一樣修改。
改好後,重新生成。
此時,還是打不開主程式的,提示缺少websockets.lib,
於是複製C:\build-websocket\lib\MinSizeRel\websockets.lib -> c:\build\output
再把需要的w檔案搬過來,如下
C:\application\mosquitto-1.4.2\mosquitto.conf -> c:\build\output
C:\build-websocket\bin\MinSizeRel\libeay32.dll -> c:\build\output
C:\build-websocket\bin\MinSizeRel\ssleay32.dll -> c:\build\output
C:\pthreads\Pre-built.2\dll\x86\pthreadVC2.dll -> c:\build\output
現在的目錄如下:開啟看看,可以執行。
先把mosquitto.conf裡的Extra listeners開啟一下:listener 9001,protocol websockets
測試一下mqtt和websockets方式,同時開啟的方式:
如出現錯誤0x0000007d, 裝vcredist2010_x86.exe即可解決。
ps:在完成編譯之前遇到好多問題,vs2010報好多錯誤,解決不了,特別是最後編譯通過開啟exe就報應用程式不能正常啟動 (0xc000007b)。特別吐血,在絕望之際,查到64位編譯使用32位庫,或者32位編譯使用64位庫就回出現這種情況,於是我把原來cmake生成vs工程的配置由vs2010 x64,改成vs2010 x86,即後來vs2010主介面中間顯示WIN32,而不是x64,坑了好久,反正以後記住了,無論系統是不是64位的,一律使用32位庫和32位編譯。
到此,編譯完成,我會把編譯過程上傳到csdn,敬請關注。
補充資源連結:點我跳轉
相關推薦
vs2010 編譯mosquitto win32版本,開啟websockets,實現訊息推送
廢話少說,開始~ 1. 下載vs2010 我下了個旗艦版的,不過只有30天試用期,無妨,編譯就夠了。 http://www.xpgod.com/soft/6637.html ps:之前用過vs2008去編譯,然後各種莫名其妙,如果有同學知道為什麼的,請留言。
vs2010 編譯mosquitto win32版本,開啟websockets,實現訊息推送
前言:因為之前沒有怎麼碰vs,只搞過cygwin,而cygwin上搞了好久都搞不定,以至於重新整理思路,這window上的版本應該怎麼去編譯。一直不知道怎麼搞,只能邊看其他教程,邊自己搞著,連續幾天下了班就可以研究編譯,特別是在開啟websockets的時候,加
jmeter測試介面,跟jenkins整合實現自動推送郵件報告
jmeter我之前沒用過,後來學習測試api,發現很方便,因而做一個記錄。 在mac上安裝jmeter,首先需要在官網下載安裝外掛,然後配置環境,為了實現跟jenkins整合,也下載了ant。環境搭建好以後,應該是這樣的狀態。 export ANDROID_HOME=/U
未讀訊息(小紅點),前端與 RabbitMQ實時訊息推送實踐,賊簡單~
前幾天粉絲群裡有個小夥伴問過:`web` 頁面的未讀訊息(小紅點)怎麼實現比較簡單,剛好本週手頭有類似的開發任務,索性就整理出來供小夥伴們參考,沒準哪天就能用得上呢。 之前在 [《springboot + rabbitmq 做智慧家居》](https://mp.weixin.qq.com/s?__biz=M
嵌入式Linux併發程式設計,程序間通訊方式,System V IPC,訊息佇列,開啟/建立msgget(), 傳送訊息msgsnd(),格式,接收訊息msgrcv(),控制訊息佇列 msgctl()
文章目錄 1,訊息佇列 2,訊息佇列結構 3,訊息佇列使用步驟 3.1,開啟/建立訊息佇列 msgget() 3.1.1,開啟/建立訊息佇列---示例msgget() 3.2,向訊息佇列傳送訊息 msgs
centos7 中啟動chrome時無法啟動的問題,開啟chrome,沒反應,自行關閉
[[email protected] bin]# /usr/bin/google-chrome [8239:8239:1230/172329.621009:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no
Android 7.0及其以上系統拍照,開啟相簿,裁剪,報錯: android.os.FileUriExposedException: file:///storage/emulated/0/.....
全部程式碼:點選下載注意:如果你原先的應用的targetSdkVersion本來就小與27。那就拍照。什麼都不修改。也不會崩潰。但是、一旦你修改了你的targetSdkVersion為27.或者28。那你的應用就會報出這些問題。。具體原因。請自行百度下targetSdkVer
qt+opencv實現拍照,開啟視訊,影象處理操作
最近小博甚是墮落,在做深度學習好久沒有啥進展,哎,人生最苦莫過於程式設計師啊,今天這篇文章就來和大家一起學學QT吧,下面我用QT實現攝像頭的拍照,錄影,以及開啟視訊檔案,影象處理等操作 qt主要是用來做介面設計,opencv主要用來做演算法處理。程式開發之前我
android 實現mqtt訊息推送,以及不停斷線重連的問題解決
前段時間專案用到mqtt的訊息推送,整理一下程式碼,程式碼的原型是網上找的,具體哪個地址已經忘記了。 程式碼的實現是新建了一個MyMqttService,全部功能都在裡面實現,包括連伺服器,斷線重連,訂閱訊息,處理訊息,釋出訊息等基本操作。 首先新增依賴: dependencies { &
技術乾貨:從零開始,教你設計一個百萬級的訊息推送系統
1、點評 本文主要分享的是如何從零設計開發一箇中大型推送系統,因限於篇幅,文中有些鍵技術只能一筆帶過,建議有這方面興趣的讀者可以深入研究相關知識點,從而形成橫向知識體系。 本文適合有一定開發、架構經驗的後端程式設計師閱讀,文內個別技術點可能並非最佳實踐,但至少都是生動的實踐分享,至少能起到拋磚引玉的作用
O2OA整合政務釘釘,實現人員同步、組織同步、單點登入(免登)、待辦待閱訊息推送
廢話不多說,直接上程式碼。 實現與政務釘釘的人員整合,待辦推送以及單點登入. 將次配置檔案由模版路徑拷貝到config目錄下. 配置檔名: zhengwuDingding.json 模版路徑:o2server/config/sample/zhengwuDingding.json 工作路徑:o
JAVA接收第三方的訊息的推送,物聯網的裝置端的訊息推送
裝置端,進行訊息推送,就是裝置的一些資訊,比如電量的值,和是否推送成功的狀態值 其推送的值的格式是json的格式,推送的標識的cmd,我這裡列子是cmd:"signal_test_status" 接收推送的程式碼是 */ @RestController("DeviceS
小程式訊息推送(含原始碼)java實現小程式推送,springboot實現微信訊息推送
最近需要開發微信和小程式的推送功能,需要用java後臺實現推送,自己本身java和小程式都做,所以就自己動手實現下小程式的模版推送功能推送。 實現思路 1 小程式獲取使用者openid,收集formid傳給java後臺 2 java推送訊息給指定小程式使用
如何建立雲平臺聊天系統,如何解決訊息推送困難問題
聊天業務描述: 使用者1發起聊天,將聊天資訊傳送到伺服器,伺服器將資訊轉發到使用者2 需要解決的問題: 1.如何判斷使用者是否線上(通過使用者滑鼠點選範圍進行判斷,若點選離開頁面則認為使用者的關注點不
日訊息量突破50億,談小米的高可用推送系統設計
小米推送是目前國內領先的推送服務提供商,主要為開發者提供快捷、準確、穩定的推送服務。目前日活躍裝置突破3億,日訊息量突破50億。本文將會介紹小米推送在提高系統可用性方面的一些經驗和教訓。 推送系統的高可用性以及如何提高可用性 緩衝機制與服務解耦 無狀
rabbitmq本身支援訊息推送,不僅僅是poll模式
1. poll方式接受訊息 QueueingConsumer consumer = new QueueingConsumer(channel); channel.basicConsume(queueName, true, consumer);
訊息推送,定時任務
package com.idorabox.manage.task; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Li
開發訊息推送服務,基於Netty protobuf--fpush(含github原始碼)
開發訊息推送服務,基於Netty protobuf--fpush-含github原始碼 技術棧 程式碼簡介 系統架構 1.系統部署架構圖如下: 2. 移動客戶端鑑定許可權原理 3. server端推送
解決github 開啟、拉取、推送速度慢的問題
第一步:開啟ipaddress.com,查詢如下兩個域名,並分別記錄下其對應的ip: 1、github.com 2、github.global.ssl.fastly.net 第二步:更新hos
SignalR SelfHost實時訊息,整合到web中,實現伺服器訊息推送
先前用過兩次SignalR,但是中途有段時間沒弄了,今天重新弄,發現已經忘得差不多了,做個筆記! 首先建立一個控制檯專案Nuget新增引用聯機搜尋:Microsoft.AspNet.SignalR.SelfHostMicrosoft.Owin.Cors 在Program.cs新增程式碼新增一個