boost編譯windows
① Windows 7使用boost asio MinGW編譯錯誤問題,怎麼解決
尤其是,我現在覺得aiso非同步的效率非常低啊 1,必須把數據禪畢拷貝到隊列里,否則數據不知道跑哪兒去了 2,必須等察襲世一次async_write完成了,才能在handler里再發一次async_write,這非常慢啊 如果你的數據拷貝了,我現在做法是:客戶類調用Send,我new一塊緩沖區,把數據拷近來,掛在隊列里。一個線程在不斷的在讀隊列,如果讀到了,就async_write發出去,在write_handler里再讀隊列,如果隊列敗肢有數據,再調用async_write,如此循環...
② 在Windows平台下怎麼編譯boost 1.57 for android
這里是使用NDK進行編譯boost的但肯定對我有用吧。。經過一番折騰終於編譯成功,,高興,呵呵! 轉載
下面將主要的過程記錄下來:
1、下載boost 源碼:
Boost for Android
Boost for android is a set of tools to compile the main part of the Boost C++ Libraries for the Android platform.
Currently supported boost versions are 1.45.0, 1.48.0 and 1.49.0.
因此下載最新的 1.49 版本,下載完成後進行打補丁
2、下載補丁代碼
boost-1_49_0
3、打補丁代碼
boost_1_49_0.tar.bz2 放在android的 external 下解壓:
tar -xjvf external/boost_1_49_0.tar.bz2
將boost-1_49_0.patch放在external\boost_1_49_0下面根目錄執行:
patch -Np1 -d external/boost_1_49_0 < external/boost_1_49_0/boost-1_49_0.patch
4、編寫boost的makefile文件,即Android.mk
LOCAL_PATH:= $(call my-dir)
common_SRC_FILES := \
libs/thread/src/pthread/thread.cpp \
libs/thread/src/pthread/once.cpp \
common_SRC_FILES += \
libs/filesystem/v3/src/codecvt_error_category.cpp \
libs/filesystem/v3/src/operations.cpp \
libs/filesystem/v3/src/path.cpp \
libs/filesystem/v3/src/path_traits.cpp \
libs/filesystem/v3/src/portability.cpp \
libs/filesystem/v3/src/utf8_codecvt_facet.cpp \
libs/system/src/error_code.cpp \
libs/system/src/local_free_on_destruction \
include $(CLEAR_VARS)
LOCAL_MODULE:= libboost
LOCAL_SRC_FILES := $(common_SRC_FILES)
prebuilt_stdcxx_PATH := prebuilts/ndk/current/sources/cxx-stl/gnu-libstdc++
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/boost \
$(prebuilt_stdcxx_PATH)/include \
$(prebuilt_stdcxx_PATH)/libs/$(TARGET_CPU_ABI)/include/ \
LOCAL_C_INCLUDES += \
$(prebuilt_stdcxx_PATH)/include \
$(prebuilt_stdcxx_PATH)/libs/$(TARGET_CPU_ABI)/include/ \
$(prebuilt_supccxx_PATH)/include
LOCAL_CFLAGS += -fvisibility=hidden -lpthread
LOCAL_CPPFLAGS += -fexceptions -frtti
LOCAL_SHARED_LIBRARIES := libc libstdc++ libstlport
LOCAL_LDFLAGS += -L$(prebuilt_stdcxx_PATH)/libs/$(TARGET_CPU_ABI) -lgnustl_static -lsupc++
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
比較重要的是上面 紅色 部分文字
最後編譯生成:
target thumb C++: libboost <= external/boost_1_49_0/libs/thread/src/pthread/thread.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/thread/src/pthread/once.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/codecvt_error_category.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/operations.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/path.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/path_traits.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/portability.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/filesystem/v3/src/utf8_codecvt_facet.cpp
target thumb C++: libboost <= external/boost_1_49_0/libs/system/src/error_code.cpp
target SharedLib: libboost (out/target/proct/godbox/obj/SHARED_LIBRARIES/libboost_intermediates/LINKED/libboost.so)
target Symbolic: libboost (out/target/proct/godbox/symbols/system/lib/libboost.so)
target Strip: libboost (out/target/proct/godbox/obj/lib/libboost.so)
Install: out/target/proct/godbox/system/lib/libboost.so
成功生成 libboost.so 庫
③ 安裝了多個版本vs怎麼編譯boost
boost有些庫是不用安裝的,僅需包含頭文件庫就行了。
但是有些很爽的庫(thread,regex)需要根據不同的系統做不同的調整,所以必須編譯。
編譯的流程很簡單,如果是windows操作系統,首先找到那個booststrap.bat的東西,然後在控制台下運行它,它會生成bjam.exe,然後就可以通過bjam來編譯boost庫了,在命令行下輸入bjam --help看選項。
如果嫌麻煩,可以一次將boost庫需要編譯的全部編譯了,bjam --build-type=complete,生成庫全在stage目錄下。
④ VS2012+Windows下使用Boost的thread庫編譯報錯
同問,我也遇到了,有解決辦法嗎?
boost庫編譯成動態鏈接庫就可以了。boost庫有3種編譯狀態,看哪種和調用程序匹配。
⑤ window32位下安裝boost庫怎麼運行 bootstrap.bat
1.模塊/工具簡介
Boost庫是一個跨平台,開源並且完全免費的C++庫,內容涵蓋字元串處理、正則表達式、容器與數據結構、並發編程、函數式編程、泛型編程、設計模式實現等許多領域,使得實際的開發更加靈活和高效。(
2.系統要求
Windows xp以上
3.部署步驟
(1)選擇下載Boost庫Windows版的安裝包,解壓至硬碟任意目錄(建議硬碟根目錄),下面用$BOOSTDIR表示boost的存放目錄
(2)在解壓的文件夾中找到bootstrap.bat並運行,生成bjam的可執行程序,運行即可
(3)編譯完成後會生成bin.v2和stage子目錄,裡麵包含了生成的*.lib庫文件
(4)配置vs環境,創建測試項目test,工具欄項目->右鍵->test屬性->配置屬性->C/C++->常規->附加包含目錄中添加$BOOSTDIR路徑(C:\boost_1_54_0;),在鏈接器->常規->附加庫目錄中添加$BOOSTDIR\stage\libs(C:\boost_1_54_0\stage\lib\*.lib),應用並確定,boost庫在win32環境下就部署成功了!
4.可能遇到的問題
(1)LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-s-1_52.lib'
到庫文件去看,只存在libboost_thread-vc100-mt-1_52.lib,兩者有什麼差別呢
-s
⑥ windows boost 32位怎麼編譯
方法1.運行腳本vsvars32.bat:
D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\vsvars32.bat
這個批處理 主要就是在運行CMD的時候先為我們設置一下環境變數(臨時的) (這個腳本中寫入的是bin, lib,include , tools的路徑信息,也可以自己配置)
方法2.設置系統環境變數:
電腦右鍵屬性-->高級環境變數-->系統環境變數選擇PATH 編輯,將以下內容復制追加:
;D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools;D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin;D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcpackages;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Windows\Microsoft.NET\Framework64\v3.5;C:\Windows\Microsoft
環境變數生效可能需要重啟計算機。
⑦ 如何在windows平台下編譯比特幣bi
比特幣(BitCoin)的概念最初由中本聰在2009年提出,根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。
與大多數貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。P2P的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值。基於密碼學的設計可以使比特幣只能被真實的擁有者轉移或支付。這同樣確保了貨幣所有權與流通交易的匿名性。比特幣與其他虛擬貨幣最大的不同,是其總數量非常有限,具有極強的稀缺性。
⑧ windows boost庫要編譯多久
vc的話有編譯好的,mingw的話也有,不過不是最新版的,自己編譯找教程吧,大概是先編譯一個bjam的文件出來,然後用它編譯boost,挺快的,其實沒有某些教程說的幾個小時,我的i5-460M大概是編譯了大半個小時,boost1.56
⑨ 如何編譯boost.1.60庫
64位windows平台,編譯環境是VS2005,進入Visual Studio 2005 x64 Win64 Command Prompt(單純的cmd也不一定不行,我沒試)。把bjam.exe放在boost根目錄下,進入根目錄,執行:
bjam --toolset=msvc address-model=64 --with-thread stage
bjam --toolset=msvc address-model=64 --with-date_time stage
關鍵選項:「address-model=64 」
64位linux平台,使用gcc編譯。進入boost根目錄,執行:
./bjam --toolset=gcc --with-thread stage
./bjam --toolset=gcc --with-date_time stage
linux平台下倒是簡單,不過網上有篇文章介紹用如下命令編譯,不知道是多此一舉,還是適用於某些情況(非64位linux主機?)。
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-thread stage
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-date_time stage
唉。命令都很簡單,可浪費了我不少時間。usage根本沒寫,去看boost build的嘛,頁數n多不說,看完之後能否找到答案還是未知數。網上相關資料很少而且大多南轅北轍,只好一直搜索+嘗試。其實我只是想要個64位版本的庫而已,這應該不是啥稀罕的需求吧?
在windows平台下,編譯出來的是否是64位類庫,只有link 64位程序的時候才能發現。如果不是,link程序無法找到類庫中定義的函數或者類。linux不知道,因為我整出來直接就是64位了,我也懶得再找一台32位linux主機折騰了。
在1.37之後的boost,如果想要使用boost::thread庫,必須有boost::date_time庫。當然這件事情又一如既往很酷地沒有出現在容易看到的地方。而是讓你鏈接錯誤後再去玩抓蟲游戲。
⑩ windows下boost怎樣安裝與使用說明
1. 概述
最近打算學習一下Boost庫,這里記錄一下Boost庫的安裝的方法,IDE涉及DEV C++和VS 2008。
2. 下載
直接下載鏈接:參見網頁 http://www.boost.org/users/history/version_1_46_1.html,這里的鏈接網速很慢,78MB的東西,下載了10%左右,就定住了,試了三次都是這樣,基本放棄了這個下載鏈接。
SVN下載鏈接,文件保存在「D:\Boost」下:參見網頁 http://www.boost.org/users/download/,有一定速度,下載使用了49分鍾,傳了115.99MB,版本為1.47,我看了下下載的文件夾,嚇了我一跳:文件夾大小501MB,佔用空間3.15GB。趕緊去網上查了下,有的人說對於1.46版本的Boost,如果完全編譯後,可能需要12-15GB的空間,這樣就不奇怪了,雖然還沒編譯就佔了3GB。
3. VS2008 Boost庫編譯(-vc9)
首先,編譯bjam,在命令行下,運行bootstrap.bat -vc9
然後,編譯庫。在命令行下,運櫻碼行:
bjam stage --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="D:\Boost\bin\vc9" link=static runtime-link=shared threading=multi debug release
bjam stage --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="D:\Boost\bin\vc9" link=static runtime-link=static threading=multi debug release
編譯用了50分鍾左右,產生了303MB的文件。
4. VS2008 Boost庫配置
Tools -> Options -> Projects and Solutions -> VC++ Directories
在Library files中,增加D:\Boost\bin\vc9\lib
在Include files中,增加D:\Boost\
其中,Library的目錄就是前面編譯產生的那些庫文件保存到的位置
其中,Include的目錄隨著Boost的不同版本會不同,現在1.47版本只要指定為D:\Boost即使用SVN下載Boost的文件夾就可以了。
5. VS2008 Boost庫測試
View Code
6. DEV C++ Boost庫編譯
首先,設置gcc的環境變數。在我的電腦上點擊右鍵,選擇Properties菜單項。型鬧然後在彈出的對話框中選擇Advanced頁脊租哪,點擊Environment Variables按鈕。之後進行如下設置,選擇PATH,然後點擊Edit按鈕,在最後加上DEV-C++編譯器的路徑,如C:\Program Files\DEV-CPP\Bin,路徑之間用分號分隔。 設置完畢點擊OK按鈕保存。
然後,編譯bjam,運行bootstrap.bat -gcc
接著,編譯boost庫:
bjam stage --toolset=gcc --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="D:\Boost\bin\gcc" link=static runtime-link=shared threading=multi debug release
bjam stage --toolset=gcc --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="D:\Boost\bin\gcc" link=static runtime-link=static threading=multi debug release
7. DEV C++ Boost庫配置
在Toos->Compiler Options->Directories->C++ Include中,增加D:\Boost
8. DEV C++ Boost庫測試
第一種,只要包含該頭文件即可,就能使用該頭文件中的所有函數。
View Code
第二種,需要建立一個project,而不能只是編譯單個的c++文件,因為在dev c++中,只有在project中才能設置linker的參數。 建立project後,「Project"-->"Project Options"-->"Parameters"選項卡--->在linker框中添加:"-lboost_regex-mt",告訴linker在鏈接的時候,鏈接regex庫。
View Code
9. 參考文獻
Boost下載安裝編譯配置使用指南(含Windows和Linux) http://kb.cnblogs.com/a/1485890/
VS2008中編譯Boost 1.38 http://blog.csdn.net/wrx_2009/archive/2009/06/04/4242841.aspx
VS2008 Team System 安裝Boost庫 http://www.cookbus.com/show-121-1.html
boost在DevC++中的安裝過程 http://blog.csdn.net/suwei19870312/archive/2011/03/13/6246400.aspx