boost如何編譯
Ⅰ boost怎麼編譯
1、用它帶的booststrap腳本生成b2、bjam
2、用b2、bjam生成lib
boost附帶的文檔一開始就是教你怎麼安裝編譯boost。照著做就是了
Ⅱ 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
環境變數生效可能需要重啟計算機。
Ⅲ Linux下G++怎麼編譯使用Boost庫的程序
首先把Boost庫的頭文件存放到/usr/include/boost/路徑下,再把Lib文件存放到/usr/local/lib/boost/路徑下。修改/etc/profile文件,在此文件中增加如下2個環境變數:
BOOST_INCLUDE=/usr/include/boost
export BOOST_INCLUDE
BOOST_LIB=/usr/local/lib/boost
export BOOST_LIB
寫一個如下所示的cpp文件。
//samlpe.cpp
#include <iostream>
#include <string>
#include <boost/thread.hpp>
using namespace std;
void threadRoutine(void)
{
boost::xtime time;
time.nsec = 0;
time.sec = 20;
cout << "線程函數做一些事情" << endl;
boost::thread::sleep(time);
}
int main(void)
{
string str;
cout << "輸入任意字元開始創建一個線程..." << endl;
cin >> str;
boost::thread t(&threadRoutine);
t.join();
cout << "輸入任意字元結束運行..." << endl;
cin >> str;
return 0;
}
保存。使用g++編譯,命令如下所示:
g++ -o samlpe.out samlpe.cpp -I$BOOST_INCLUDE -L$BOOST_LIB -lboost_thread-gcc-mt
其中-I參數指定Boost頭文件路徑,-L參數指定Boost庫文件路徑,-l參數指定使用線程庫名。在我使用的這個版本Boost里,到/usr /local/lib/boost路徑下,可以看到有關Boost線程庫文件,比如:libboost_thread-gcc-mt.a等。注意在用-l 參數指定庫名時把磁碟文件名前面那個lib前綴去掉就可以了。
Ⅳ 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();
}
添加包含庫目錄,操作如下圖,注意紅色框中的添加內容
添加附加庫目錄,操作如下圖,注意紅色框中的添加內容
Ⅳ 安裝了多個版本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
Ⅶ 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的文檔以獲得更多信息。