標籤:windows vs2010 apache qpid
這幾天使用apache qpid,網上關於在windows下的編譯過程幾乎沒有,自己編譯時間候也廢了點功夫,現記錄以饗他人。
首先,可以確定的是qpid確實支援windows平台的。但是編譯過程類似與linux編譯過程,需要再次產生一次工程才能形成windows下的sln檔案
第一步:準備環境,需要安裝的軟體如下:
1.ruby
2.python
3.cmake
4.boost
1.2項是用來再次產生工程用的,以後並不使用
3項是必要的,qpid是個cmake工程,符合發展趨勢的
4項是編譯必要的函數庫,也建議devs都能使用,boost編譯過程網上一大把,很容易編譯
第二步:解壓出qpid-cpp-0.28檔案夾,注意,應當形成這樣的資料夾樹狀目錄:
---任意檔案夾名,例如qpid-cpp
-------qpid-cpp-0.28
-------cpp//自建的檔案夾,必須要這個名字
之後把qpid-cpp-0.28下的所有東西複製到cpp檔案夾下。
第三步:win+r powershell,把qpid-cpp-0.28檔案夾下的bld-winsdk.ps1檔案拖進powershell,並加上參數:boost路徑+空格+boost版本,例如1.53.0+空格+vs2010之類的+編譯版本,x86或者x64,具體如下
之後會出現大堆的編譯資訊,不用管,最後會在qpid-cpp檔案夾同層析分類樹產生一個檔案夾,名叫:
編譯版本,x86或者x64+vs2010之類的,例如x86-vs2010,該目錄下就是sln檔案了,如果設定了denev的路徑的話,就會自動編譯的
該檔案夾下的檔案樣本:
編譯中可能問題:
1.個人編譯boost後庫路徑根據個人喜好可能導致cmake找不到boost庫位置,編譯中可能提示:
這個錯誤我按照提示設定後好像沒有效果,我採用了另一種辦法,使用ue開啟cpp/src/CMakeLists.txt 288行,
find_package(Boost ${Boost_minversion} REQUIRED COMPONENTS ${Boost_components})
改成
set(Boost_LIBRARY_DIRS "F:/BOOST/lib")#find_package(Boost ${Boost_minversion} REQUIRED COMPONENTS ${Boost_components})
當然,具體的路徑要看個人愛好修改,這樣修改後就沒問題了。
另外,跟這個相關的openmama項目,是部分有名的mq的一個高層抽象,用來屏蔽不用mq的函數差異,結合起來使用應該更加好一下把。
openmama是nyse開源出來的項目,具體的效果看官網上應該不錯,需以驗證。