boost64位編譯
『壹』 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();
}
添加包含庫目錄,操作如下圖,注意紅色框中的添加內容
添加附加庫目錄,操作如下圖,注意紅色框中的添加內容
『貳』 boost.python 庫,在 VC 中如何選擇
1、查看boost編譯是否已經生成boost_python-vc120-mt-gd-1_58.lib。注意python與boost是32位或64位版本,版本要對應。
我之前因為boost編譯是的64位,而python是32位的,造成鏈接失敗。可以使用mpbin /headers xxx.dll檢查是32位還是64位。
僅供參考。
『叄』 如何編譯64位 boost類庫
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庫。當然這件事情又一如既往很酷地沒有出現在容易看到的地方。而是讓你鏈接錯誤後再去玩抓蟲游戲。
轉載,僅供參考。
『肆』 如何編譯64位 boost類庫
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庫。當然這件事情又一如既往很酷地沒有出現在容易看到的地方。而是讓你鏈接錯誤後再去玩抓蟲游戲。
轉載,僅供參考。
『伍』 如何能夠避免警告編譯boost庫的32位和64位版本
1. 出現.ipp文件或許只能用 Unicode 保存了,但是一閃而過太快了,來不及看清,所以只能說寫代碼出現不能調試時,再改了。
2. boost庫難道真的是不支持64位嗎?還是說我的編譯方法不對,我查看很多都是用這個方法實現的,我看C++技術網的boost提綱里也提過,不過是32位的,而且我在YouTube上一個外國佬也是這么實現的。
『陸』 安裝了多個版本vs怎麼編譯boost
boost有些庫是不用安裝的,僅需包含頭文件庫就行了。
但是有些很爽的庫(thread,regex)需要根據不同的系統做不同的調整,所以必須編譯。
編譯的流程很簡單,如果是windows操作系統,首先找到那個booststrap.bat的東西,然後在控制台下運行它,它會生成bjam.exe,然後就可以通過bjam來編譯boost庫了,在命令行下輸入bjam --help看選項。
如果嫌麻煩,可以一次將boost庫需要編譯的全部編譯了,bjam --build-type=complete,生成庫全在stage目錄下。
『柒』 如何編譯64位 boost類庫
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庫。當然這件事情又一如既往很酷地沒有出現在容易看到的地方。而是讓你鏈接錯誤後再去玩抓蟲游戲。
『捌』 如何使用VS2017編譯boost
Based on KindDragons answer I compiled Boost 1.63. For 64bit. Starting with Developer Command Prompt for VS 2017 RC
Run: bootstrap.bat
open project-config.jam Here is mine:
import option ;
using msvc : 14.0 : "c:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Tools\MSVC\14.10.24728\bin\HostX64\x64\cl.exe";
option.set keep-going : false ;
Run b2 toolset=msvc-14.0 address-model=64