當前位置:首頁 » 編程軟體 » vs2012編譯boost

vs2012編譯boost

發布時間: 2022-06-10 02:26:25

㈠ 如何編譯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之旅吧。

㈡ 安裝了多個版本vs怎麼編譯boost

boost有些庫是不用安裝的,僅需包含頭文件庫就行了。
但是有些很爽的庫(thread,regex)需要根據不同的系統做不同的調整,所以必須編譯。
編譯的流程很簡單,如果是windows操作系統,首先找到那個booststrap.bat的東西,然後在控制台下運行它,它會生成bjam.exe,然後就可以通過bjam來編譯boost庫了,在命令行下輸入bjam --help看選項。

如果嫌麻煩,可以一次將boost庫需要編譯的全部編譯了,bjam --build-type=complete,生成庫全在stage目錄下。

㈢ vs2012用boost 解析 xml

boost沒有對xml專門支持,只是作為一種配置保存的方式
如果要使用property tree庫可以辦到

http://www.boost.org/doc/libs/1_55_0/doc/html/property_tree.html

如果要操作xml建議使用TinyXml等專門的庫

㈣ 如何用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庫。當然這件事情又一如既往很酷地沒有出現在容易看到的地方。而是讓你鏈接錯誤後再去玩抓蟲游戲。

㈤ 怎樣在VS2013中安裝配置boost

下載Boost庫,這里我選擇下載boost_1_55_0.zip
解壓boost文件到本地目錄(如G:\boost_1_55_0),可以發現解壓後的文件中有一個bootstrap.bat文件。
然後以管理員身份打開cmd窗口,

上述命令執行完畢後可以發現G:\boost_1_55_0下新生成了一個bjam.exe文件
在命令窗口中輸入語句:bjam.exe
此過程將默認根據系統已經安裝好的編譯工具(VS2008,2010,2012,2013)等編譯相應的Lib文件、頭文件等。(此步驟大概需要10分鍾)
可以看到msvc 12.0,這是因為我系統中已經安裝過了VS2013
msvc : 8.0是VS2005
msvc : 10.0是VS2010
msvc : 12.0是VS2012、VS2013

第5步執行成功後會有如下信息提示
至此我們已經完成了boost庫的安裝,下面需要配置一下VS2013了。新建一個VS2013控制台應用程序(工程名為boostest),添加如下代碼
#include "stdafx.h"
#include <boost/lexical_cast.hpp>
#include <iostream>
using namespace std;
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.0123456789");
string s0 = lexical_cast<string>(a);
string s1 = lexical_cast<string>(b);
cout << "number: " << a << " " << b << endl;
cout << "string: " << s0 << " " << s1 << endl;
int c = 0;
try{
c = lexical_cast<int>("abcd");
}
catch (boost::bad_lexical_cast& e){
cout << e.what() << endl;
}
return 0;
}
添加boostest工程的包含目錄和庫目錄
包含目錄添加 G:\boost_1_55_0
庫目錄添加 G:\boost_1_55_0\stage\lib

進入代碼窗口編譯並成功運行說明BOOST庫確實已經配置成功,可以放心使用。

㈥ 如何編譯&使用boost庫

1. 編譯

1.2. VS2005編譯boost_1_55_0

1.2.1. 使用vs2005的命令行執行:...\boost_1_55_0\bootstrap.bat

1.2.2. 編譯動態庫

bjam install stage --toolset=msvc-8.0 --stagedir="C:\Boost\boost_vc_80" link=shared runtime-link=shared threading=multi debug release

1.2.3. 編譯靜態庫

bjam install stage --toolset=msvc-8.0 --stagedir="D:\Boost\boost_vc_80" link=static runtime-link=static threading=multi debug release

各種參數詳解:

stage:表示只生成庫(dll和lib)

install:還會生出包含的頭文件

--toolset=msvc-8.0:指定編譯器版本,8.0為vs2005,其他VS類推。

--stagedir:指定編譯後存放的目錄

link:生成動態庫/靜態庫。動態庫(shared),靜態庫(static)

runtime-link:動態/靜態C/C++運行時庫,同樣有shared和static兩種組合方式。這樣共有4種組合方式,個人根據自己需要選擇。

threading:單/多線程,一般都是多線程程序,當然multi了。

debug/release:編譯版本,一般2個都需要。

2. 使用

使用靜態庫:

[cpp] view plain print?
//#define BOOST_ALL_DYN_LINK
#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>

使用靜態庫連接時,僅需要包含的lib為:

debug版:libboost_system-vc80-mt-gd-1_55.lib等一系列包含gd的庫。

release版本:libboost_system-vc80-mt-1_55.lib等一系列不包含gd的庫。

使用動態庫鏈接:

[cpp] view plain print?
#define BOOST_ALL_DYN_LINK
#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
使用動態庫鏈接時,僅需要包含的lib為:

debug版:boost_system-vc80-mt-gd-1_55.lib,同時在生成的exe加入boost_system-vc80-mt-gd-1_55.dll

release版:boost_system-vc80-mt-1_55.lib,同時在生產的exe路徑下加入boost_system-vc80-mt-1_55.dll

㈦ win7下vs2010編譯boost怎麼配置stlport

一、安裝cmake
1、這一步比較簡單,下載安裝最新版本cmake-2.8,開始如下安裝

2、注意這里選擇第二個選項,為所有的用戶添加系統變數

3、選擇安裝到目錄 F:\CMake 2.8,個人建議最好安裝在C盤目錄下。

4、安裝完畢後確認一下系統變數中有沒有紅色框中的目錄,若沒有需要手動添加進去。

5、cmake安裝完畢!
二、安裝Boost庫

1、下載最新版本,當前為boost_1_55_0

2、按 Win+R組合鍵輸入cmd進入命令窗口:
切換當前目錄為boost的安裝目錄(G:\boost_1_55_0),輸入bootstrap.bat

3、執行完上述命令後會在安裝目錄下生成如下exe文件

4、繼續在DOS窗口中輸入bjam.exe,程序會根據你當前安裝的編譯環境(vs2010,vs2012,vs2013)等自動選擇與之相適應的庫文件和包含文件等。
此過程大概需要20分鍾左右。根據下面第二個圖片可以算出我的編譯環境為MSVC-12.0即VS2013.

5、20分鍾左右後可以看到如下界面,說明Boost庫配置完成

三、安裝CGAL

1、下載CGAL,這里我下載的是CGAL-4.4這個版本(當前最新的)

2、安裝位數選擇32位
如果選擇64位進行安裝,則會在以後配置完畢後出現類似「無法識別的外部符號。。。」等問題,很難進行正確配置。所以這里最好全部選擇32位進行安裝。

3、安裝目錄我選擇C:\Program Files\CGAL-4.4
安裝在其他目錄時可能會出現用Cmake編譯時出現好幾外錯誤。可以嘗試通過安裝在C盤進行解決。

4、選擇如下幾項,單擊下一步

5、安裝完成後可能會出現如下提示,則需要手動添加F:\CGAL-4.4\auxiliary\gmp\lib到Path變數中

6、此時CGAL安裝完成
四、用Cmake配置CGAL庫

1、打開Cmake軟體選擇如下目錄,註:兩個目錄是相同的

2、單擊「config"-選擇如下編譯器(默認是32位,與前面安裝軟體一定要保持一致)

3、單擊確定後,出現如下界面說明配置成功

4、找到如下圖的這一項,選中,再次單擊"config"進行配置

5、單擊Generate,此時界面應如下。

6、此時在CGAL安裝目錄下出現如下文件:CGAL.sln

7、打開此文件,此時編譯器會自動組建一個解決方案。如下圖

8、選擇32位debug模式,按F7進行編譯,編譯完成後如下圖所示,表明CGAL至此完全配置成功。

五、舉例測試CGAL

新建一個控制台應用程序,並添加如下代碼

#include <iostream>
#include <boost/format.hpp>
#include <QtGui>
#include <CGAL/Qt/GraphicsViewNavigation.h>
#include <QLineF>
#include <QRectF>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QGraphicsScene scene;
scene.setSceneRect(0,0, 100, 100);
scene.addRect(QRectF(0,0, 100, 100), QPen(QColor(255,0,0)));
scene.addLine(QLineF(0,0, 100, 100));
scene.addLine(QLineF(0,100, 100, 0));
QGraphicsView* view = new QGraphicsView(&scene);
CGAL::Qt::GraphicsViewNavigation navigation;
view->installEventFilter(&navigation);
view->viewport()->installEventFilter(&navigation);
view->setRenderHint(QPainter::Antialiasing);
view->show();
return app.exec();
}

添加包含庫目錄,操作如下圖,注意紅色框中的添加內容

添加附加庫目錄,操作如下圖,注意紅色框中的添加內容

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

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

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

㈨ 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源碼如何應用

下載Boost庫,這里我選擇下載boost_1_55_0.zip
解壓boost文件到本地目錄(如G:\boost_1_55_0),可以發現解壓後的文件中有一個bootstrap.bat文件。
然後以管理員身份打開cmd窗口,

上述命令執行完畢後可以發現G:\boost_1_55_0下新生成了一個bjam.exe文件
在命令窗口中輸入語句:bjam.exe
此過程將默認根據系統已經安裝好的編譯工具(VS2008,2010,2012,2013)等編譯相應的Lib文件、頭文件等。(此步驟大概需要10分鍾)
可以看到msvc 12.0,這是因為我系統中已經安裝過了VS2013
msvc : 8.0是VS2005
msvc : 10.0是VS2010
msvc : 12.0是VS2012、VS2013

第5步執行成功後會有如下信息提示
至此我們已經完成了boost庫的安裝,下面需要配置一下VS2013了。新建一個VS2013控制台應用程序(工程名為boostest),添加如下代碼
#include "stdafx.h"
#include <boost/lexical_cast.hpp>
#include <iostream>
using namespace std;
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.0123456789");
string s0 = lexical_cast<string>(a);
string s1 = lexical_cast<string>(b);
cout << "number: " << a << " " << b << endl;
cout << "string: " << s0 << " " << s1 << endl;
int c = 0;
try{
c = lexical_cast<int>("abcd");
}
catch (boost::bad_lexical_cast& e){
cout << e.what() << endl;
}
return 0;
}
添加boostest工程的包含目錄和庫目錄
包含目錄添加 G:\boost_1_55_0
庫目錄添加 G:\boost_1_55_0\stage\lib

進入代碼窗口編譯並成功運行說明BOOST庫確實已經配置成功,可以放心使用。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:944
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:741
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372