windowsboost編譯
『壹』 windows boost庫要編譯多久
vc的話有編譯好的,mingw的話也有,不過不是最新版的,自己編譯找教程吧,大概是先編譯一個bjam的文件出來,然後用它編譯boost,挺快的,其實沒有某些教程說的幾個小時,我的i5-460M大概是編譯了大半個小時,boost1.56
『貳』 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
『叄』 安裝了多個版本vs怎麼編譯boost
boost有些庫是不用安裝的,僅需包含頭文件庫就行了。
但是有些很爽的庫(thread,regex)需要根據不同的系統做不同的調整,所以必須編譯。
編譯的流程很簡單,如果是windows操作系統,首先找到那個booststrap.bat的東西,然後在控制台下運行它,它會生成bjam.exe,然後就可以通過bjam來編譯boost庫了,在命令行下輸入bjam --help看選項。
如果嫌麻煩,可以一次將boost庫需要編譯的全部編譯了,bjam --build-type=complete,生成庫全在stage目錄下。
『肆』 windows下boost怎樣安裝與使用說明
一、 下載boost
boost_1_51_0.zip 下載並解壓到C盤根文件夾
二、編譯boost
1、生成生命行程序
執行bootstrap.bat
2、編譯
執行b2.exe,完成後顯示:
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
C:/boost_1_51_0
The following directory should be added to linker library paths:
C:\boost_1_51_0\stage\lib
三、使用boost
1、創建一個win32 console
2、引用bootst
C/C++ -> Additional Include Directories: C:\boost_1_51_0
Linker-> Additional Library Directories: C:\boost_1_51_0\stage\lib
Linker->Input->Additional Dependencies :libboost_signals-vc110-mt-gd-1_51.lib;libboost_regex-vc110-mt-gd-1_51.lib;
3、Code如下:
#include "stdafx.h"
#include <boost/regex.hpp>
#include <boost/signals.hpp>
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <cassert>
struct print_sum {
void operator()(int x, int y) const { std::cout << x+y << std::endl; }
};
struct print_proct {
void operator()(int x, int y) const { std::cout << x*y << std::endl; }
};
int _tmain(int argc, _TCHAR* argv[])
{
boost::signal2<void, int, int, boost::last_value<void>, std::string> sig;
sig.connect(print_sum());
sig.connect(print_proct());
sig(3, 5);
std::string line;
boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
return 0;
}
示常式序在vs2012下通過,輸出:
8
15
『伍』 boost最新版1.48.我想分析下裡面的asio的源代碼,該如何做,我在windows下,應該用什麼編譯器
微軟的C++編譯器即可.
『陸』 VS2012+Windows下使用Boost的thread庫編譯報錯
同問,我也遇到了,有解決辦法嗎?
boost庫編譯成動態鏈接庫就可以了。boost庫有3種編譯狀態,看哪種和調用程序匹配。
『柒』 win7下為VS2010安裝boost庫 命令行運行bootstrap.bat時提示failed to build Boost.Build engine
可能是安裝的boost庫版本不對,試試其他版本的吧
『捌』 如何用Visual Studio 2010編譯boost1.42庫
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 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平台下怎麼編譯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 庫