❶ win7 安裝qt vs2010配置boost,CGAL等
一、安裝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();
}
添加包含庫目錄,操作如下圖,注意紅色框中的添加內容
添加附加庫目錄,操作如下圖,注意紅色框中的添加內容
直接編譯運行此時會出現如下錯誤,別急,我們離成功只差一步了
>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QColor::QColor(int,int,int,int)" (__imp_??0QColor@@QAE@HHHH@Z),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QBrush::QBrush(void)" (__imp_??0QBrush@@QAE@XZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QBrush::~QBrush(void)" (__imp_??1QBrush@@QAE@XZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: void __thiscall QWidget::show(void)" (__imp_?show@QWidget@@QAEXXZ),該符號在函數 _main 中被引用
1>test.obj : error LNK2001: 無法解析的外部符號 "protected: virtual bool __thiscall QWidget::winEvent(struct tagMSG *,long *)" (?winEvent@QWidget@@MAE_NPAUtagMSG@@PAJ@Z)
1>test.obj : error LNK2001: 無法解析的外部符號 "protected: virtual void __thiscall QWidget::windowActivationChange(bool)" (?windowActivationChange@QWidget@@MAEX_N@Z)
1>G:\Cpp\Midaxis\CGAL512\Debug\CGAL512.exe : fatal error LNK1120: 81 個無法解析的外部命令
添加附加依賴項。
選擇「鏈接器」---「輸入」,在其中輸入如下添加LIB文件
phonon4.libQAxContainer.libQtCLucene4.libQtCore4.libQtDeclarative4.libQtDesigner4.libQtGui4.libqtmain.libQtOpenGL4.lib
再次編譯運行,即可大功告成了!
❷ 如何利用VS2010進行QT開發的環境配置
本人是在BBS上找到的,官網上沒仔細去找了(英文太多)。
2. 安裝qt sdk
安裝其實很簡單了,基本上一路回車即可,主要是要注意下qt的安裝路徑最好安裝在全英文路徑而且中間沒有空格, 安裝好後,可以運行開始菜單裡面的qt demo,直觀感受下qt的強大功能!
界面非常炫酷
4. 編譯qt
qt默認使用mingw進行編譯,如果要使用vs2010開發,需要將qt重新編譯。
進
入開始菜單microsoft visual studio 2010,visual studio tools,visual studio
command prompt (2010),需要注意的是,這裡面必須是使用visual studio command prompt
(2010),不能使用cmd的dos窗口
進入qt的安裝目錄後,執行cd qt,進入qt的根目錄
運行命令 configure -platform win32-msvc2010,o(選擇opensource模式)回車,y(同意license)回車
k1988插入:
在編譯過程中,為了加快速度,可以對configure適當的加些參數,比如-fast,-no-webkit(這個貌似挺耗時的)
我
選擇的命令行:configure -platform win32-msvc2010 -fast -debug-and-release
-no-webkit -no-script -no-qt3support -nomake demos -nomake examples
-nomake tools -mp
其中:mp是多線程編譯選項。
接著就會自動配置qt的編譯環境,等配置結束後,運行nmake,回車,qt就會開始漫長的編譯過程,這段時間非常長,需要4個小時以上。
liuyu遇到的問題:(自己遇到過,當時沒記錄下來,但是記得編譯過程中遇到這些問題)
1.DefaultLocalizationStrategy.cpp
C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/INCLUDE/yvals.h(21) : war
ning C4005: 『_HAS_TR1』 : macro redefinition
command-line arguments : see previous definition of 『_HAS_TR1』
platform/DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
platform/DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected en
d of file in macro expansion
NMAKE : fatal error U1077: 『「C:/Program Files (x86)/Microsoft Visual Studio 10.0
/VC/BIN/cl.EXE」』 : return code 『0x2』
Stop.
NMAKE : fatal error U1077: 『「C:/Program Files (x86)/Microsoft Visual Studio 10.0
/VC/BIN/nmake.exe」』 : return code 『0x2』
Stop.
NMAKE : fatal error U1077: 『cd』 : return code 『0x2』
Stop.
NMAKE : fatal error U1077: 『cd』 : return code 『0x2』
Stop.
解決辦法:
打開文件…/Qt4.8.5/src/3rdparty/webkit/Source/WebCore
/platform/DefaultLocalizationStrategy.cpp
找到327行刪除的引號「」
2.NMAKE:fatal error U1077. return code 0x2
產生原因:找不到代碼文件中包含的頭文件
解決辦法:cmd下進入到vs安裝路徑/VC/Bin下,執行vcvars32,此時會執行vcvas32.bat自動為vs設置環境變數 (這個也試過好幾回,沒效果,依然出現上面錯誤)試試下面的就解決了:
經分析,是環境變數設置的CURR_DIR和TARGETDIR值中含有空格導致了此問題。
通過下面的命令刪除環境變數即可。
在d:/Qt/4.8.6目錄下鍵入下面的命令即可(不是很明白)
接著繼續nmake命令 回車換行
k1988插入:(本人未找到以下文件)
請先刪除
src/3rdparty/webkit/webcore/tmp/moc/debug_shared/mocinclude.tmp
src/3rdparty/webkit/webcore/tmp/moc/release_shared/mocinclude.tmp
/src/script/tmp/moc/debug_shared/mocinclude.tmp
/src/script/tmp/moc/release_shared/mocinclude.tmp
等文件,否則編譯有可能失敗。
k1988插入:
這一步很重要,關繫到是否能用qt-vs-addin。
把d:/qt/bin下的.qmake.cache和configure.cache這兩個文件手動備份到另一個地方。
(本人未嘗試過)然後使用nmake clean進行清理掉那些中間文件(pdb,obj等文件),清理出4個g左右的空間。
nmake confclean是清理配製文件,占的空間不大,可以不執行了。這個時候再把剛備份的.qmake.cache和configure.cache拷回原處。
5.配置vs2010的qt開發環境(vs2010最好是英文版本,qt對vs2010中文版本可能支持的不好)
等qt編譯好後就可以配置vs2010的開發環境了,進入vs2010,選擇qt菜單,qt option,進入下圖界面
k1988插入:
按
步驟編譯好了,用qt助手paths加進去,不知為何ok鍵不亮, 紅字提示:qt in the given path built using
mingw 這個是qt插件的bug,得手工改注冊表 hkey_current_user/software/trolltech/versions/
下增加一個子項 qt486(需要的名稱) 子項下面增加一個數值 installdir,值就是你要配置的qt路徑
ps:如果沒有versions這個文件夾就新建一個吧!
(這里確實是個坑,僅僅修改注冊表居然沒有用,還要去qt的lib文件夾下刪掉兩個文件 –>>刪除qt的lib目錄下(我的路徑是D:/Qt/4.8.6/lib)的libqtmain.a and libqtmaind.a 兩個文件。)
點擊add,添加qt的安裝目錄,並取名字,我這里使用qt的4.8.6版本為名稱,選擇ok後即可。
6.新建或者導入qt項目
可以通過在vs2010新建一個qt項目