⑴ qtcreater 怎麼設置msvc編譯
該方法可以使用在win 8.
1、編譯Qt 5.0.2,編譯器為Msvc 2012
2、下載Cdb.exe,這個是給控制台調試代碼用的,Msvc用的調試器是WinDbg,所以安裝vc是沒有Cdb的,網址:
注意:現在上面說的網址已經不能用了,沿用上面的網址進去下載 WDK 8,這個對應的VS 2012 for win 7, 這個安裝很慢。或者下載2010的對應的CDB,下載網址:
C:\WinDDK\7600.16385.1\Debuggers
這個下面是有CDB的。
3、完成後安裝。
4、打開Qt Creator,在"工具"->"選項"裡面如下設置地方點擊自動檢測即可:
⑵ qt-vs-tools-msvc2013-2.1.1怎麼安裝
下載安裝qt
安裝完成後打開VS2013,可以看到菜單欄上多出了一個「QT5」選項。
單擊上圖紅色標框中的「Qt options」,並在下圖中配置其環境變數。
變數名:VS2013_QT
路徑:F:QtQt5.3.05.3msvc2013_64_opengl(QT5的安裝目錄)
完成目上步操作後即可在VS2013中新建QT項目,例如新建「QTEST」。
當編譯時會出現如下錯誤:
Qt5Widgetsd.lib(Qt5Widgetsd.dll) : fatal error LNK1112: 模塊計算機類型「x64」與目標計算機類型「X86」沖突
右擊QTEST項目,選擇「屬性」---「鏈接器」--「高級」---「目標計算機」,更改目標計算機為MachineX64 (/MACHINE:X64),並把平台改成「活動(x64)」。
接下來繼續配置QT5插件,單擊下圖中的QT工程設置把版本改為VS2013_QT5
再次編譯即可成功運行
⑶ 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
再次編譯運行,即可大功告成了!
⑷ vs編譯cv4.5必須要cuda環境嘛
先說一下我的需求:在win10中,顯卡是3070的機器上,使用的IDE是Qt,實現基於open pose的旗語的檢測。說白了就是自己編譯一個能使用cuda加速的一個opencv,利用opencv的dnn模塊的介面實現對深度學習模型的調用。在這里只記錄一個環境配置的過程。
本機環境:win10 RTX3070 Qt 5.9.2 msvc編譯器
下面只記錄比較重要的一些過程,給大家一些參考。
1、第一步,先安裝QT。大部分安裝Qt,就自帶了裡面的mingw編譯器,但是想要編譯能用cuda加速的opencv,我使用mingw編譯器,沒有把opencv編譯成功。我猜大概是mingw搞定不了opencv +cuda的編譯(不確定,猜想)。所以就安裝vs了。肯定需要安裝vs2015及其以上的版本,15,17,19三個版本中,查看了很多資料,了解到應該是2017在編譯opencv中最不容易出現問題。最好是用vs2017。
如果你在安裝QT過程中沒有選擇msvc2017的話,就應該得重新安裝一下了。Qt配置msvc編譯器的教程網路一下就可以。安裝完記得配置一下QT 的環境變數。記住根據自己的Qt安裝位置來配置。然後運行一下Qt能用說明第一步就完成了。
⑸ VS里正常的代碼在QT里執行有問題要怎麼弄好QT的
在安裝 QT+MSVC環境的時候,該出的問題我想都讓我碰上了。
問題1 :jom.exe 崩潰,構建不通過。
jom: ......... Error 219:19:11: 進程"E:QT1ToolsQtCreatorinjom.exe"退出,退出代碼 2 。Error while building/deploying project untitled (kit: Desktop Qt 5.5.1 MSVC2015 64bit)When executing step "Make"這個我沒有出現什麼cl不是內部命令的提示,至於使用nmake就更錯了,nmake運行就出問題,估計是安裝時nmake就有問題了。所以不是環境變數之類的錯誤,由於我前期先安裝的QT+MinGW,後來需要MSVC才安裝的vs2015,估計是這個安裝先後順序導致一些配置不對,反正我的kit配置都沒有錯誤提示了也不行,乾脆直接全卸了重新來。這次OK了,msvc,mingw都能用了。後來看到有初始化msvc編譯環境的腳本,如果不行就先使用下試試,沒准就OK了,不用浪費時間重新安裝(安裝時間好長呀)
1
問題2 -1: error: LNK2019: 無法解析的外部符號 **,該符號在函數 ** 中被引用,看圖說話。
無法解析的外部符號說明,該函數的庫或頭文件沒有被引入,比如下面
qmfcapp.obj : error LNK2019: 無法解析的外部符號 __imp_SetWindowsHookExW,該符號在函數 "public: static bool __cdecl QMfcApp::pluginInstance(void *)" (?pluginInstance@QMfcApp@@SA_NPEAX@Z) 中被引用在QT中找到QMfcApp::pluginInstance函數查看了下使用到外部函數的地方SetWindowsHookEx,點擊可以跳轉到頭文件WinUser.h,那就是庫沒有了。由於原來是MinGW,內部的庫都導入了,轉到MSVC後一些自帶的系統庫沒有加進來。網路查找SetWindowsHookEx該函數所需庫User32.lib,在電腦上搜了。然後在.pro工程文件中右鍵加入庫如下
把加後綴的勾刪了,我這window下好像沒有專門的d版調試庫。
OK。這時在庫里就自動加上了下面這幾行。
1
2
3
4
1
問題3 User32.Lib:-1: warning: LNK4272:庫計算機類型「X86」與目標計算機類型「x64」沖突
剛開始時找錯了庫,找到的是32位編譯出來的user32.lib庫,後來直接到系統盤window下找到了64位的就OK了。
問題4 This application has requested the Runtime to terminate it in an unusual way
這個在我安裝了vs2015就出現了這問題,沒裝時都好好的。這個上一篇有講到,這次又遇上了,我真的是無語了,也是莫名其妙的又不報了。具體怎麼弄好的我也摸不著,vs2015又裝了VC++里的所有部分(MFC類,兼容XP什麼的兩個,原本就一個VC++編譯器的),到qt安裝目錄里有個vcredist_msvc2015_x86運行,重啟後也一樣,然後還有什麼,重新拷貝庫?一堆事情,一個個試都不好,換vb,vs,突然之間就好了,可是VB來錯誤53,找不到dll了,vs來載入格式不正常,這個看問題5。但有一點可以肯定—-錯誤與下面的dll無關,這個是depends找不到有關的bug。
問題5 試圖載入格式不正確的程序。 (異常來自 HRESULT:0x8007000B)
這里是目標平台和庫不一致,需要注意下,用MinGW編譯的去MinGW版的QT庫里找對應的庫(debug版和release版),然後要注意的是它是32位的,所以vs里只能選擇X86平台。貌似沒有找到有64的MinGW版本的QT.
而MSVC我下的是64的,所以只能選則X64平台。拷貝庫也是到msvc版的QT庫里找。如果庫位數不對,會呈粉紅色。
問題6 其他信息: 無法載入 DLL「bstdll.dll」: 找不到指定的程序。 (異常來自 HRESULT:0x8007007F)。
換成X86的拿mingw編譯出來的試出這問題,拿到在VB下就是 實時錯誤53:找不到DLL的意思了。這個估計就是跟安裝了vs2015的問題有關了。安裝了vs2015後VC++估計把我一些32位的庫給弄掉了,怎麼都無法成功了。嘗試下個msvc 32位的編譯看是否一樣。
問題7 error: C2373: 「saveImage」: 重定義;不同的類型修飾符
同樣的代碼用64的編譯器和MinGW都沒問題,換成32位的msvc就出問題了,
.h文件
.cpp文件
void saveImage(const char *file){平常看到的講解導出dll都沒要求實現里也要加上__stdcall,這里報錯就是這個原因,.cpp里也加個__stdcall就OK了。
1
2
3
1
問題8 其他信息: 無法在 DLL「xxx.dll」中找到名為「xxx」的入口點。
到這一部至少說明,dll可以被找到,目標平台和生成的dll也是一致的,只是入口函數找不到,可能是導出名不對了,depends查看下果然名字被過度修飾了。變成了_function@bytenum形式。
怎麼解決我不知道msvc的編譯器有沒有這個選項,直接改成這個名字算了。
問題9 發生了 PInvokeStackImbalance
對PInvoke函數的調用導致堆棧不對稱。
先看看是不是調用協議不對,vb是__stdcall,vc++默認用__cdecl,如果一致了還出錯,那可能是long要改成int32,這個嘗試改下就行了。我就是這么解決的。
到此,無論是64還是32位都能用了。坑好多啊。MinGW版不知道為什麼就是錯誤提示找不到dll,裝了個VS2015麻煩這么多。有知道的大神可以解惑下。
有些人說MinGW版編譯的dll不能在window下用是有問題的,反正我不裝VS2015時一切都好好的。如上篇所述,而且也在別人機子上試過。現在沒時間找這個問題了,能用就行了。
⑹ 如何在vs 2010中使用qt編輯框架
Qt的最大好處是跨平台,可以看到上圖,Qt可以支持windows,Mac os,linux,embedded linux, wince/mobile,symbian,諾基亞最新的Megoo那也是不在話下了,由於公司最近有些項目要求跨平台的支持,原來的GIS引擎是基於Windows開發的,雖然沒有用MFC,但是由於繪圖引擎這塊使用的GDI+,所以跨平台是非常困難的。所以為了支持跨平台以及在可預見的將來的跨平台的需求,決定將繪圖引擎這塊在Qt的基礎上進行重構,並使用Qt開發一套基於QtGis引擎的地圖項目管理應用程序。
我在博客中將會同步將開發這個應用程序的步驟展示出來,希望能通過這個系列的博客,來展示Qt開發應用程序的便利性以及展示我們公司GIS引擎的強大能力。應用程序的源代碼將會同步放在每篇教程內提供下載。Gis引擎將通過提供SDK的方式方便大家學習及開發。
第一篇. 配置Qt的windows開發環境,並通過VS2010進行開發。
1. 下載Qt的安裝包和VS2010的Qt插件,大家可以到下面的地址進行下載(下面的下載都是基於Windows的,如果是其他環境的操作系統可以到這里下載).
Qt SDK: http://qt.nokia.com/downloads/sdk-windows-cpp
VS2010開發插件: http://qt.nokia.com/downloads/visual-studio-add-in
2. 安裝Qt SDK
安裝其實很簡單了,基本上一路回車即可,主要是要注意下Qt的安裝路徑最好安裝在全英文路徑而且中間沒有空格, 安裝好後,可以運行開始菜單裡面的Qt Demo,直觀感受下Qt的強大功能!
界面非常炫酷
3. 安裝Qt的VS開發插件
同安裝Qt SDK一樣,一路上回車即可,安裝後在VS2010上新增一菜單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)回車
接著就會自動配置Qt的編譯環境,等配置結束後,運行nmake,回車,Qt就會開始漫長的編譯過程,這段時間非常長,需要4個小時以上,大家可以在晚上睡覺的時候進行編譯。
5.配置VS2010的Qt開發環境(VS2010最好是英文版本,Qt對VS2010中文版本可能支持的不好)
等Qt編譯好後就可以配置VS2010的開發環境了,進入VS2010,選擇Qt菜單,Qt Option,進入下圖界面
點擊Add,添加Qt的安裝目錄,並取名字,我這里使用Qt的發現版本最為名稱,選擇OK後即可。
6.新建或者導入Qt項目
可以通過在VS2010新建一個Qt項目
導入Qt的Pro項目
Pro是Qt自帶編譯器Qt Creator的項目工程文件,如果想使用VS2010開發則需要將原有項目的Pro導入到VS2010的項目文件中,可以使用菜單Qt-Open
這樣我們的Qt開發環境就搭建好了,大家可以將Qt目錄下的Example和Demo下的例子的運行看一遍,體驗下Qt的強大和便捷,Enjoy!