當前位置:首頁 » 編程軟體 » windows下boost怎麼編譯

windows下boost怎麼編譯

發布時間: 2022-09-06 07:39:04

① windows 怎麼安裝boost

先從官網(www.boost.org)下載最新版的BOOST源碼,如圖所示

我這里下的是zip的那個
第2步:
編譯源代碼(放心.這里是傻瓜式的操作,很容易操作)
(1)先把源代碼放在E盤,例如 E:oost_1_53_0
(2)在源代碼中找到一個批處理bootstrap.bat,運行即可
此時會彈出Building Boost.Jam之類,過一會之後,源代碼中新增了1個文件bjam.exe
(3)運行bjame.exe即能編譯了(花費時間很長,大概20分

② windows boost庫要編譯多久

vc的話有編譯好的,mingw的話也有,不過不是最新版的,自己編譯找教程吧,大概是先編譯一個bjam的文件出來,然後用它編譯boost,挺快的,其實沒有某些教程說的幾個小時,我的i5-460M大概是編譯了大半個小時,boost1.56

③ VS2012+Windows下使用Boost的thread庫編譯報錯

同問,我也遇到了,有解決辦法嗎?

boost庫編譯成動態鏈接庫就可以了。boost庫有3種編譯狀態,看哪種和調用程序匹配。

④ 如何用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程序

Boost庫是一個功能強大、構造精巧、跨平台、開源並且完全免費的C++程序庫
要使用Boost庫,首先確認一下你使用的開發環境是否支持編譯boost庫(http://www.boost.org/users/history/version_1_46_1.html)
以windows的msvc編譯器為例,支持編譯boost庫是Visual C++: 7.1, 8.0, 9.0 10.0
如果你還在用VC++ 6.0的話,只能抱歉了。VC6編譯器由於不支持模板偏特化等許多新特性,所以有的Boost庫會缺少功能甚至不能使用。
安裝Boost庫的方法:
1、從Boost網站(www.boost.org)下載壓縮包,解壓到本地硬碟任意位置。
本文以boost_1_46_1版本為例,解壓位置為 D:\boost_1_16_1\
2、進入目錄D:\boost_1_16_1\,運行bootstrap.bat,獲得bjam.exe 程序
3、命令行方式執行: bjam stage --toolset=msvc-7.1 --build-type=complete --layout=versioned
其中,
stage 選項指定boost使用本地構建,當前目錄下會創建一個stage目錄,編譯後的lib庫會在其中。
toolset 選項指定編譯器,對於使用visual studio 開發工具的程序員來說,需要正確填寫msvc的版本號:
vs2003 : msvc-7.1
vs2005 : msvc-8.0
vs2008 : msvc-9.0
vs2010 : msvc-10.0
build-type 選項指定編譯類型,
layout 選項指定需要編譯的庫名及頭文件的地址目錄名的生成策略。默認Windows下為versioned

接下來你可以關上顯示屏去做別的事了,因為Boost庫的完整編譯會耗費大量的時間(本人在pc上花了約1個小時時間)。
完整編譯後,需要在visual studio IDE 中設置包含目錄和庫目錄。

Windows Visual Studio 200x IDE 通用配置
=======================================
在菜單中選擇:
1. Tools (工具)
2. Options (選項)
3. Project and Solutions (項目)
4. VC++ Directories (VC++ 目錄)
5. Show directories for (顯示以下內容的目錄): Include Files (包含文件) 增加 D:\boost_1_46_1
6. Show directories for (顯示以下內容的目錄): Library Files (庫文件) 增加 D:\boost_1_46_1\stage\lib

如果是Visual Studio 2010,不再是從tools->options->project and solutions->VC++ directories 中配置庫目錄和包含目錄,而是對自己的項目單獨配置。
先添加/導入自己的項目,在窗體左側項目的屬性管理器中
1.單擊第一個按鈕(屬性),彈出項目屬性頁
2.選擇配置屬性->VC++目錄
3.包含目錄中增加 D:\boost_1_46_1
4.庫目錄中增加 D:\boost_1_46_1\stage\lib

OK,一切准備就緒。可以開始使用Boost庫了。下面的一個小程序可以測試一下boost庫是否安裝正確。
#include <boost/thread/thread.hpp>
#include <iostream>
void hello() {
std::cout << "Hello world, I'm a thread!" << std::endl;
}
int main(int argc, char* argv[]) {
boost::thread thrd(&hello);
thrd.join();
return 0;
}
正確安裝的話,會在控制台輸出一行"Hello world, I'm a thread!"的信息。

完整編譯Boost庫費時費力,而且也不一定在開發中都用到,所以也可以自行選擇要編譯的庫。
只要在運行bjam的命令中,添加--with-<庫名> 選項就可以了,或--without-<庫名>關閉某個庫的編譯。
bjam還有許多選項,可參考bjam的文檔以獲得更多信息。

⑥ 在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 庫

⑦ 如何編譯libboost

您好,這樣的:
1、當前boost最新版本為1.55,下載地址http://sourceforge.net/projects/boost/files/boost/1.55.0/
或者從官網(www.boost.org)下載最新版的BOOST源碼,經過測試,2012和2013步驟相同,這里以2012為例。
2、打開VS2012 Native Tools Command,可以從開始--Microsoft Visual Studio 2012找到:將下載的 boost_1_55_0.zip 解壓在F盤,例如 F:\boost_1_53_0,執行bootstrap.bat。
3、編譯,可以簡單的使用b2 install,也可以指定存放目錄,或者尋找網上其它幫助文章。
查看幫助可以輸入:.\b2 --help
比如要開啟多線程編譯:b2 install threading=multi
設置生成的是debug或者release
備註:如果是使用VS2013,請指定輸出庫類型,否則會缺一個lib文件:
"無法打開文件 libboost_thread_vc120_mt_sgd-1_55.lib"。
在2013時,我是使用下面的語句進行編譯:
// 如果要獲取動態庫:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=shared runtime-link=shared threading=multi debug release
// 如果是要獲取靜態庫:

bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=static runtime-link=static threading=multi debug release

其中,注意修改--toolset=msvc-12.0,將12.0修改成對應的vs版本號,12.0是VS2013的版本號。

目標地址也要修改成你所需的。

注意,不要漏了install,它會幫你把頭文件集合到一個文件夾中。
編譯過程有一個復制過程,編譯需要的時間比較長,本次編譯過程中,會在C盤根目錄下生成一個boost文件夾,然後包含include和lib文件夾,這就是我們將要使用的頭文件和庫文件。

4、編譯完了我們就使用編譯在C盤中的文件。我將它們拷貝到了F盤,
需要簡單的配置兩個地方:這里使用絕對路徑,也可以配置環境來使用。
5、然後建立了一個工程測試。 在BoostTest中新建一個控制台應用程序,下圖三個文件分別是:
1) 將要使用的boost頭文件和庫文件。 2) 解壓出的boost文件夾,就是使用這個文件夾來進行 1 -- 3步驟的。 3)BoostTest 測試工程。
#include <iostream>

#include <boost/thread/thread.hpp>
void hello()
{
std::cout << "Hello world, I'm a thread!" << std::endl;
}
int main()
{
boost::thread thrd(&hello);
thrd.join();
}
編譯測試工程, 並運行,開始boost之旅吧。

⑧ 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

熱點內容
前端android 發布:2025-03-20 06:50:42 瀏覽:93
進制轉換棧c語言 發布:2025-03-20 06:50:31 瀏覽:339
myeclipse不自動編譯了 發布:2025-03-20 06:41:38 瀏覽:777
led汽車大燈和鹵素燈該選哪個配置 發布:2025-03-20 06:40:55 瀏覽:917
sql網校 發布:2025-03-20 06:16:42 瀏覽:279
安卓手機圖標排列為什麼會混亂 發布:2025-03-20 06:16:05 瀏覽:761
手機pin初始密碼是多少 發布:2025-03-20 06:15:59 瀏覽:900
javaif常量變數 發布:2025-03-20 06:15:57 瀏覽:344
iis安裝sql 發布:2025-03-20 06:05:31 瀏覽:149
製作自解壓安裝 發布:2025-03-20 05:41:49 瀏覽:305