Ⅰ QT5.5 for vs2010,包含5.5的庫目錄QTWidgets、QTCORE、QTGUI。為什麼編譯會出現qt庫錯誤求解決方案
qt5.0.2forwindows32bit(mingw4.7)是使用mingw32環境+gcc4.7編譯而成的二進制動態鏈接庫版本。qt5.0.2forwindows32bit(vs2010)是使用VS2010的配置和windowssdk7.0所提供的編譯工具生成的用於VS2010的版本。其中mingw4.7版本自帶了編譯器。而vs2010版本必須要安裝VS2010才能使用。其實沒有vs只安裝windowssdk也可以,不過需要一個代替vs2010的配置工具集。你C++什麼水平啊?如果不是新手的話我建議你去檢查一下配置項,就是qtcreator的編譯環境配置是否把qt路徑配置進去了。如果你是新手,我暫時勸你放棄qt,沒有足夠的C++功底,想用Qt很困難的。
Ⅱ vs2013編譯c++怎麼添加qt庫啊,我一編譯程序就提示打不開文件...之類的,求解
首先你需要安裝qt,qt官網有安裝文件,最新的是5.3.x,下載下來安裝好。
其次,你需要visual studio的一個qt插件,也在官網下。現在的安裝包裡面應該繼承這個插件了。這個插件允許你在VS下面直接創建QT的項目,比手動設置要方便的多。
謝謝,望採納。
Ⅲ :-1: 錯誤:Qt Creator 需要設置一個編譯器來構建。在構建套件選項里設置一個編譯器。
首先,官方預編譯版本不帶有編譯器(除mingw版本外),其它版本都需要自行安裝。
有兩個選擇:
完整安裝vs2012旗艦版,安裝完之後佔用空間8個多G,(組件最小化之後,不包含幫助),給個地址http://go.microsoft.com/?linkid=9810280,序列號網路,基本能用
安裝windows sdk 8.1 中的 VC++ compiler 2012,其它全部勾選掉,或者連同sdk一塊裝了。
http://go.microsoft.com/fwlink/?LinkID=226658 在線安裝程序,或者通過win8應用商店安裝。
之後進入工具->選項->構建和運行->編譯器選項卡里就會識別出來 vc++編譯器。切換到構建套件選項卡,然後自動檢測配置。如果檢測不出來一個desktop套件的話,那麼手動選擇建立一個就行了。
Ⅳ 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時一切都好好的。如上篇所述,而且也在別人機子上試過。現在沒時間找這個問題了,能用就行了。
Ⅳ qt vs tools怎麽安裝
下載安裝qt
安裝完成後打開VS2013,可以看到菜單欄上多出了一個「QT5」選項。
單擊上圖紅色標框中的「Qt options」,並在下圖中配置其環境變數。
變數名:VS2013_QT
路徑:F:\Qt\Qt5.3.0\5.3\msvc2013_64_opengl(QT5的安裝目錄)
完成目上步操作後即可在VS2013中新建QT項目,例如新建「QTEST」。
當編譯時會出現如下錯誤:
Qt5Widgetsd.lib(Qt5Widgetsd.dll) : fatal error LNK1112: 模塊計算機類型「x64」與目標計算機類型「X86」沖突
右擊QTEST項目,選擇「屬性」---「鏈接器」--「高級」---「目標計算機」,更改目標計算機為MachineX64 (/MACHINE:X64),並把平台改成「活動(x64)」。
接下來繼續配置QT5插件,單擊下圖中的QT工程設置把版本改為VS2013_QT5
再次編譯即可成功運行
Ⅵ 如何安裝Qt5.8以及如何在VS配置上Qt
1. 首先,我們到網站下載源碼包,加壓源碼包到磁碟。
2. 由於編譯QtWekbit需要ICU andANGLE 庫,ICU庫需要單獨下載和編譯,從下載ICU4Cversion 56.1並解壓到磁碟,目錄位置參見隨後說明。
3. 在Qt 5.5.1的源碼包中還存在一個BUG,如果直接編譯的話在編譯QT3D模塊的時候會報沒有找到Zlib.h的錯誤而中斷編譯,所以參照如下提示修改qt-everywhere-opensource-src-5.5.1\qt3d\src\3rdparty\assimp目錄下的assimp.pri文件。可參考地址。
4. 在編譯QT5.5.1之前還需要安裝配置一下的工具和環境:
5. 經過上面的步驟可以開始進行編譯ICU4C version 56.1和QT5.5.1的源碼了
6. 如果以上的配置都正確的話開機讓機器編譯幾個小時後就可以在目標路徑下生成QT5.5.1的運行文件。
Ⅶ vs2013不能編譯qt,qt5.4安裝好也配置好了,但是一編譯程序就顯示無法打開源文件qtweight之類的,求解
你不要用QT里自帶的這些你就能編過去了 當然 你如果非要用VS編 你得把QT的頭文件和庫的路徑都設置到VS的環境里去
Ⅷ vs 編譯qt程序怎麼設置qt版本
(1) 刪除源碼包中bin目錄下的syncqt和syncqt.dat文件,如你不放心可將其改名或剪切到別的位置。如不修改將發生 Perl not found in environment - cannot run syncqt 錯誤。
(2) 修改\mkspecs\win32-msvc2010下的qmake.conf文件,將其中的
QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-改成QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t
注意末尾的」-「號區別。如不修改將來如有項目使用wchar_t,qt卻編譯成wchar_t-,編譯會導致連接錯誤,提示找不到Qwstring;
QMAKE_CFLAGS_RELEASE,QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO,QMAKE_CFLAGS_DEBUG這3處後面的MD,MDd對應改成MT,MTD,以實現在沒有VC庫的電腦也能運行Qt程序。
(3) 修改src\3rdparty\webkit\Source\WebCore\platform下的DefaultLocalizationStrategy.cpp,定位到327行,將本行替換成return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", (selectedString));(由於word自動排版問題,請各位直接將以上英文部分一次性全復制,其實它們是一行,不要分行復制)。
如不修改將出現編譯Webkit 時會出現 U1077錯誤。
Ⅸ vs不能編譯qt
1. 下載qt的安裝包和vs2011的qt插件,大家可以到下面的地址進行下載
BBS:
官網:
本人是在BBS上找到的,官網上沒仔細去找了(英文太多)。
2. 安裝qt sdk
安裝其實很簡單了,基本上一路回車即可,主要是要注意下qt的安裝路徑最好安裝在全英文路徑而且中間沒有空格, 安裝好後,可以運行開始菜單裡面的qt demo,直觀感受下qt的強大功能!
界面非常炫酷
4. 編譯qt
qt默認使用mingw進行編譯,如果要使用vs2011開發,需要將qt重新編譯。
進
入開始菜單microsoft visual studio 2011,visual studio tools,visual studio
command prompt (2011),需要注意的是,這裡面必須是使用visual studio command prompt
(2011),不能使用cmd的dos窗口
進入qt的安裝目錄後,執行cd qt,進入qt的根目錄
運行命令 configure -platform win32-msvc2011,o(選擇opensource模式)回車,y(同意license)回車
k1988插入:
在編譯過程中,為了加快速度,可以對configure適當的加些參數,比如-fast,-no-webkit(這個貌似挺耗時的)
我
選擇的命令行:configure -platform win32-msvc2011 -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.配置vs2011的qt開發環境(vs2011最好是英文版本,qt對vs2011中文版本可能支持的不好)
等qt編譯好後就可以配置vs2011的開發環境了,進入vs2011,選擇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項目
可以通過在vs2011新建一個qt項目