win8.1+vs2013下安裝CGAL(含qt、boost、cmake)?

我的CGAL配置環境為:windows8.1+vs2013+qt4.8.6+cmake2.8

CGAL是非常強大的演算法幾何庫,它是基於boost庫編寫的,因此需要要首先配置boost。為了完成計算機輔助幾何的專案需要用到很多幾何演算法(網格劃分、幾何建模等),所以需要配置安裝CGAL,個人感覺這是我遇到過最複雜的軟體配置。中間出了很多型別的錯誤,還好最後終於成功了,現分享經驗如下:

工具/原料

CGAL

cmake

Qt

boost

VS2013

一、安裝cmake

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

注意這裡選擇第二個選項,為所有的使用者新增系統變數

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

cmake安裝完畢!

二、安裝Boost庫

下載最新版本,當前為boost_1_55_0

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

按 Win+R組合鍵輸入cmd進入命令視窗:

切換當前目錄為boost的安裝目錄(G:\boost_1_55_0),輸入bootstrap.bat

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

執行完上述命令後會在安裝目錄下生成如下exe檔案

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

繼續在DOS視窗中輸入bjam.exe,程式會根據你當前安裝的編譯環境(vs2010,vs2012,vs2013)等自動選擇與之相適應的庫檔案和包含檔案等。

此過程大概需要20分鐘左右。根據下面第二個圖片可以算出我的編譯環境為MSVC-12.0即VS2013.

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

20分鐘左右後可以看到如下介面,說明Boost庫配置完成

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

三、安裝CGAL

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

安裝位數選擇32位

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

安裝目錄我選擇C:\Program Files\CGAL-4.4

安裝在其他目錄時可能會出現用Cmake編譯時出現好幾外錯誤。可以嘗試通過安裝在C盤進行解決。

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

此時CGAL安裝完成

四、用Cmake配置CGAL庫

開啟Cmake軟體選擇如下目錄,注:兩個目錄是相同的

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

單擊“config"-選擇如下編譯器(預設是32位,與前面安裝軟體一定要保持一致)

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

單擊Generate,此時介面應如下。

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

此時在CGAL安裝目錄下出現如下檔案:CGAL.sln

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

開啟此檔案,此時編譯器會自動組建一個解決方案。如下圖

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

五、舉例測試CGAL

新建一個控制檯應用程式,並新增如下程式碼

#include

#include

#include

#include

#include

#include

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();

}

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

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

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

直接編譯執行此時會出現如下錯誤,別急,我們離成功只差一步了

>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QColor::QColor(int,int,int,int)" ([email protected]@[email protected]@Z),該符號在函式 _main 中被引用

1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QBrush::QBrush(void)" ([email protected]@[email protected]),該符號在函式 _main 中被引用

1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QBrush::~QBrush(void)" ([email protected]@[email protected]),該符號在函式 _main 中被引用

1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: void __thiscall QWidget::show(void)" ([email protected]@@QAEXXZ),該符號在函式 _main 中被引用

1>test.obj : error LNK2001: 無法解析的外部符號 "protected: virtual bool __thiscall QWidget::winEvent(struct tagMSG *,long *)" ([email protected]@@[email protected]@[email protected])

1>test.obj : error LNK2001: 無法解析的外部符號 "protected: virtual void __thiscall QWidget::windowActivationChange(bool)" ([email protected]@@[email protected])

1>G:\Cpp\Midaxis\CGAL512\Debug\CGAL512.exe : fatal error LNK1120: 81 個無法解析的外部命令

新增附加依賴項。

選擇“連結器”---“輸入”,在其中輸入如下新增LIB檔案

phonon4.libQAxContainer.libQtCLucene4.libQtCore4.libQtDeclarative4.libQtDesigner4.libQtGui4.libqtmain.libQtOpenGL4.lib

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

再次編譯執行,即可大功告成了!

執行結果如下圖所示。

win8.1+vs2013下安裝CGAL(含qt、boost、cmake)

注意事項

配置過程中一定要細心,且勿少了某個步驟,否則會出現意想不到的錯誤

本人花了三天兩晚完成了上述配置。如果覺得對你有用,請點個贊哦!

軟體, 環境, 幾何, 錯誤, 演算法,
相關問題答案