程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> websocket++編譯過程,websocket編譯過程

websocket++編譯過程,websocket編譯過程

編輯:C++入門知識

websocket++編譯過程,websocket編譯過程


websocket++ 是一個開源 websocket 庫,使用websocket++ 能夠開發基於websocket 服務。
前一段時間成功編譯 websocket++ ,分享一下,編譯websocket++ 過程如下:
1.安裝Python , 本例安裝 Python27
2.安裝scons , 該程序負責構建跨平台編繹腳本。需要Python支持.
3.配置Python  , scons , 環境變量:
    C:\Python27  //Python27 環境變量
    C:\Python27\Scripts  //scons 環境變量

4.編譯openssl //boost依賴項
5.編譯boost //websocket 中使用boost庫
6.編譯websocket++

編繹過程為 openssl -> boost ->websocket , 最終生成32位運行環境程序

其中openssl 版本:openssl-1.0.2a , boost:boost_1_51_0 , websocket++ (0.3.0-alpha4)


openssl 編譯需要perl支持,安裝perl 後配置環境變量,本例為:C:\Perl64\bin 
在openssl 根目錄 INSTALL.W32 介紹了編繹過程:
1.打開vs2010 tool cmd x86環境  // vcvarsall x86
2.cd H:\openssl-1.0.2a\openssl-1.0.2a
3.perl Configure VC-WIN32 no-asm   //沒裝匯編環境,因此添加 no-asm 否則報錯
4.ms\do_ms
5.nmake -f ms\ntdll.mak

boost 編繹過程
1.解壓boost_1_51_0 , 打開vs2010 tool cmd x86環境 , 切入到解壓目錄
2.運行bootstrap.bat , 生成 bjam
3.cmd 環境,輸入 bjam install architecture=x86 address-model=32 --toolset=msvc-10.0 --without-python --build-type=complete --prefix="H:\boost_1_51_0\boost_1_51_0\bin\vc10_prefix_dll_arcx86_addr32" link=static runtime-link=shared threading=multi debug release
4.配置環境變量:
    BOOST_INCLUDES = H:\boost_1_51_0\boost_1_51_0\bin\vc10_prefix_dll_arcx86_addr32\include\boost-1_51
    BOOST_LIBS = H:\boost_1_51_0\boost_1_51_0\bin\vc10_prefix_dll_arcx86_addr32\lib

由於websocket++ 使用 boost 庫, 本例程,將openssl 的 include lib 並入 boost 庫路徑中
1.拷貝 openssl-1.0.2a\openssl-1.0.2a\include\openssl 到 boost_1_51_0\boost_1_51_0\bin\vc10_prefix_dll_arcx86_addr32\include\boost-1_51
2.拷貝 openssl 編繹輸入結果:out32dll 目錄(libeay32.lib , ssleay32.lib)內容復制到 H:\boost_1_51_0\boost_1_51_0\bin\vc10_prefix_dll_arcx86_addr32\lib

websocket++ 例程編繹過程(0.3.0-alpha4)
1.解壓websocket++ , 打開cmd , 切入到解壓目錄
2.修改SConstruct文件, 因為本人是win7 64位系統,默認編譯結果是64位。本例目標編譯x86環境,需要對 SConstruct 文件修改:
    a.如將 :env['LINKFLAGS'] = '/INCREMENTAL:NO /MANIFEST /NOLOGO /OPT:REF /OPT:ICF /MACHINE:X64' 修改為:env['LINKFLAGS'] = '/INCREMENTAL:NO /MANIFEST /NOLOGO /OPT:REF /OPT:ICF /MACHINE:X86'
    b.行首將 env = Environment(ENV = os.environ)  修改為: env = Environment(ENV = os.environ , TARGET_ARCH = 'x86')


    a 設置生成目標程序運行環境為 x86機器。b TARGET_ARCH = 'x86' 設置編譯環境為x86 , 如果編譯64位,分別修改為:/MACHINE:X64  TARGET_ARCH = 'amd64'

3.修改examples/utility_client/utility_client.cpp , 其中引用了chrono 庫,該庫為cpp11標准庫,vs2010不支持,去掉代碼中包含chrono 引用部份。
4.在utility_client.cpp中添加對openssl部份引用:
    #pragma comment(lib, "libeay32.lib")
    #pragma comment(lib, "ssleay32.lib")


    之前,我們已將openssl編譯結果拷貝到boost lib 庫中,因此,此處可直接引用。
    關於拷貝openssl庫到boost 目錄的問題,也可不用拷貝,將openssl 庫放入 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC 目錄 lib , include 目錄,效果一樣。


至此,所有准備工作完成了,在cmd環境,切入0.3.0-alpha4解壓目錄, 運行 scons ,最終顯示 scons: done building targets. 表明websocket++例程編譯成功。










  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved