qt編譯依賴哪些庫命令
A. 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項目
B. 在QTCreate如何添加LIB依賴庫進行編譯
依照上述的格式,你就可以添加編譯時需要的依賴庫了。
這是一種正確的方法,不過在筆者還不知道這種方法的時候,筆者時通過修改Makefile的。在debug目錄下,有一個Makefile文件,你可以通過在如下的方式:在Makefile裡面找到
在這里進行添加。不過這種方式的有一個問題:那就是當.pro的文件變化的時候,Makefile就會被重新組織和生成,這個時候LIBS 就會被改變,你需要再次添加,不然又會編譯出錯。希望這個方法對大家有用!
C. 如何解決QT程序發布時的dll依賴問題
使用QT生成exe應用程序後,其中依賴很多QT中的DLL庫,但是在生成exe的時候,這些DLL 並沒有添加到exe目錄,在很多時候,我們都自己手動去復制需要的DLL,難免不會造成少dll的情況或者在其他的電腦上用不起。今天發現在qt安裝目錄中發現Qt 官方開發環境里自帶了一個工具:windeployqt.exe。可以自動把需要依賴的庫文件都自動拷貝到exe目錄中。
使用方法:
1.打開QT的命令行工具,
2:進入到你生成exe目錄,你可以把生成的exe拷貝到新建的一個目錄中,比如c:\text中。
使用命令:1. cd c:\text
2. windeployqt test.exe
然後你就可以看到你的目錄中就有需要的dll和文件了,這時候你可以試試能否啟動。
D. 命令行編譯qt程序 有幾種方式
一、環境配置
1
要想使用Qt進行命令行編譯,環境配置是必不可少的一步。環境配置好以後,我們才能使用相應的qmake,nmake等命令,並且鏈接到編譯程序時所需要的頭文件和庫文件。
小提示:為了幫助大家解決環境配置的問題,新版Qt已經自帶了相應的批處理文件,我們只要在編譯前執行對應的批處理文件即可。
2
首先,我們在命令行編譯時需要運行qmake.exe,因此我們需要將該文件的路徑添加到PATH變數中。要想做到這一點,我們只需要執行Qt安裝目錄下的
Qt5.5.1\5.5\msvc2013\bin\qtenv2.bat 批處理即可。
3
其次,在編譯過程中,我們還需要用到nmake命令,並且鏈接相應的頭文件和庫文件,以生成最終的可執行程序。要想做到這一點,我們只需要執行VS安裝目錄下的
D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat批處理即可。
注意:由於我安裝的是Qt for VS2013 32位版,所以運行的是vcvars32.bat,如果你安裝的是64位版,請運行vcvars64.bat。
4
至此,環境配置就大功告成了。關於這個環境配置,需要特別指出的是,這個配置是臨時性的,只在當前命令行窗口有效;也就是說,你關閉命令行窗口後,均需要重新運行相應的批處理文件。
END
二、命令行編譯
首先,將以上兩個批處理文件復制到要編譯的工程目錄中。
然後,點擊菜單「文件」-「打開命令提示符」,在該目錄下打開命令行窗口。
執行批處理文件qtenv2.bat。注意,由於該批處理會跳轉到Qt安裝目錄,我們執行完畢後需要回到我們的當前目錄(我這里由於Qt安裝目錄與當前目錄不在同一個磁碟,只要切換磁碟便回到當前目錄了)。
執行批處理文件vcvars32.bat。
下面,正式開始編譯。首先,生成工程文件。鍵入命令:
qmake -project
說明:生成的工程文件名會與你當前的目錄名同名。例如,我當前的目錄名為test,生成的工程名則為test.pro。
接著,輸入qmake test.pro,生成相應的Makefile文件。
最後,鍵入nmake,生成最終的可執行文件。
E. 如何創建並配置Ubuntu下QT編譯器
操作系統是 Ubuntu 8.04,使用目前最新版本的QT 4.4.0,安裝起來即為簡單,只要運行以下命令就行:
sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
注意在這個版本的軟體包中,qt4-dev-tools 包含了Qt Assistant及Qt Linguist等工具,因此不需要單獨安裝這兩個工具。其它的,qt4-doc 是幫助文檔,包含了Qt中各個類庫的詳細說明以及豐富的例子程序,可以使用Qt Assistant 工具來打開閱讀。qt4-qtconfig 是配置Qt環境的一個對話框,一般默認就行了,很少有必要去更改。qt4-demos 包含很多可以運行起來的可執行文件以及源代碼。qt4-designer是用來設計GUI界面的設計器。
為了連接Mysql資料庫,需要安裝連接MySQL的驅動程序:
sudo apt-get install libqt4-sql-mysql
比起在Windows下安裝和配置Qt的MySQL驅動來說,簡直太方便了。如果還需要其它的沒有默認安裝的Qt庫,可以在命令行輸入 sudo apt-get install libqt4- 然後按tab鍵自動補全,就會列出所有以libqt4- 開頭的軟體包。
這些都可以使用一個命令搞定,而不需要自己從源碼開始編譯。在記不準或不知道名字的情況下,使用tab鍵列出所有可選的軟體包是一個很實用的小技巧。
在我的項目中,還需要畫一些數據曲線和統計圖表等,而第三方的QWT庫提供了這些功能。同樣,只需要一個命令即可完成安裝:
sudo apt-get install libqwt5-qt4 libqwt5-qt4-dev
這時,打開Qt Designer,就會發現左邊的Widget列表裡面多了「Qwt Widget」這一組。
最後,關於集成開發環境我覺得QDevelop很不錯,它跟Qt Designer結合的很好,而且有提示類成員函數的功能。運行以下命令安裝:
sudo apt-get install qdevelop
這樣,使用Qdevelop編寫代碼和編譯、調試,使用Qt Designer設計界面,開發效率較高。
F. QT程序怎麼調用vc,編譯的靜態庫,動態庫等
mingw編譯出來的靜態庫後綴名為.a,編譯出來的動態庫的導入庫後綴名為.dll.a,而在windows下後綴名為.lib的庫可能是靜態庫也可能是動態庫的導入庫。 mingw編譯出來的動態庫的導入庫可以直接在vc中直接使用
G. 如何在QT中編譯資料庫驅動
進入到D:\Qt\4.8.4\src\plugins\sqldrivers\mysql目錄(QT SDK安裝目錄)下,找到mysql.pro文件,在第二行添加:
INCLUDEPATH +=D:/Qt/mysql/include
LIBS +=D:/Qt/mysql/lib/libmysql.lib
在該目錄下執行qmake生成makefile文件:
qmake -oMakefile mysql.pro (或) qmake
執行make進行編譯(VS使用nmake命令)Debug和Release版本:
H. linux下 qt程序源代碼如何編譯運行
仔細看裡面的源代碼,應該有一些文件里有連接到*.lib文件的,這是QT的動態庫文件把QT庫編譯成linux下的*.lib,然後編譯的時候,把lib文件放在同一文件夾,並且編譯命令加上-l *.lib或者放到根目錄下的lib目錄下也可以。這樣試一下。.o文件還需要經過連接才能生成可執行的文件。
I. QT 5.5.0 怎麼設置才能實現靜態編譯
qt默認的編譯方式是動態編譯的,但是有時候編寫的程序要發布出去,帶很多動態庫文件是很繁瑣的,此時就需要靜態編譯程序,qt要實現靜態編譯必須庫文件也是靜態編譯的,可以用這個命令編譯靜態庫:
1.將c:\qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的qmake_lflags
=
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
改為
qmake_lflags
=
-static
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
2.在開始菜單里找到qt
command
prompt並運行,輸入命令:
configure
-static
-debug-and-release
-no-exceptions
-l
"c:\qt\2010.05\qt\include"
-l
"c:\qt\2010.05\qt\lib"
-l指定一下路徑,防止用到vc的頭文
J. Qt下如何編譯庫
akefile文件。一般是qt里自帶的qmake工具。
首先先寫好cpp和頭文件,在當前目錄下依次執行qmake -project,qmake,make即可編譯。
另外,團IDC網上有許多產品團購,便宜有口碑