㈠ 討論上Windows平台怎麼編譯Qt5
Qt5的編譯官方有一篇wiki:http://developer.qt.nokia.com/wiki/Building_Qt_5_from_Git
簡要的總結下我的體會,歡迎補充完善、批評指正。
1.First clone the top-level qt5 git repository:
git clone git://gitorious.org/qt/qt5.git qt5
這一行不用說了,自然是將Qt5的代碼克隆。不過,如果你只是初次克隆Qt5的代碼,會很驚訝:為何克隆後的代碼只有十幾MB?
原來,Qt5已經實現了Qt的模塊化,詳見:http://labs.qt.nokia.com/2011/05/12/qt-moles-maturity-level-the-list/
所以可以在克隆得到的Qt5源碼根目錄下看到:.gitmoles 文件,其內容部分摘錄如下:
[submole "qtbase"]
path = qtbase
url = git://gitorious.org/qt/qtbase.git
[submole "qtsvg"]
path = qtsvg
url = git://gitorious.org/qt/qtsvg.git
[submole "qtdeclarative"]
path = qtdeclarative
url = git://gitorious.org/qt/qtdeclarative.git
...
這時,有Git基礎的朋友一定會想到:
git submole init
git submole update
不過,請不要這樣做!
2. Following the README file we initialize the repository. This clones the various sub-moles of Qt5:
./init-repository
這是一個perl腳本。如果是在msys-git下,會發現Perl的版本不夠。
我們需要安裝一個Windows版本的Perl:http://www.activestate.com/activeperl/downloads
安裝好以後,Perl就添加到PATH環境變數中去了。
在MSVC的控制台下執行:
perl init-repository --help
注意,不是直接執行init-repository,要用perl來執行它。看看幫助:大致了解下有哪些功能。
3. 注意它的三個小提示:
Hint1: If you』re going to contribute to Qt 5, you』ll need to pass the —codereview-username <Jira/Gerrit username> option to set up a 「gerrit」 remote for all the sub-moles.
Hint2: If you』re having problems downloading the webkit repository (which is quite big), you can pass —no-webkit.
Hint3: If you』re behind a firewall, pass —http
4. 我的方法:
perl init-repository -f --codereview-username loaden
這樣就可以實現子模塊的批處理了。特別要注意的是:在處理這些子模塊時,其實是git clone了這些子模塊,以致於他們可以獨立使用。在qt5\qtbase目錄下可以找到.git目錄。
這與git submole update的結果是不一樣的!!
同時我使用了codereview的用戶名,是為了可以創建一個名為gerrit的遠程倉庫,可以將貢獻的代碼推送進去,類似:
git push gerrit HEAD:refs/for/master
5. 源碼下載是非常慢的,因為QtWebkit達到了1.7GB。源碼下載完成後,進入Qt5源碼目錄,配置環境變數:
set PATH=%CD%\qtbase\bin;%PATH%
之後echo看一下結果是否正確:
echo %PATH%
6. 建議直接在Qt5的源碼目錄下執行配置!
configure -confirm-license -opensource -release -shared -platform win32-msvc2010 -fast -no-stl -no-qt3support -nomake examples -nomake demos -nomake tests
7. 編譯全部模塊,直接執行nmake就可以了。如果只編譯一個模塊,可以這樣:
nmake mole-qtbase
雙擊打開Qt5目錄下的Makefile文件,可以看到有這些模塊:
SUBTARGETS = \
mole-qtbase \
mole-qtsvg \
mole-qtphonon \
mole-qtxmlpatterns \
mole-qtdeclarative \
mole-qttools \
mole-qttranslations \
mole-qtdoc \
mole-qlalr \
mole-qtqa \
mole-qtlocation \
mole-qtactiveqt \
mole-qtsensors \
mole-qtsystems \
mole-qtmultimedia \
mole-qtfeedback \
mole-qtquick3d \
mole-qtdocgallery \
mole-qtpim \
mole-qtconnectivity \
mole-qtwayland \
mole-qtjsondb \
sub-qtwebkit-pri \
mole-qtwebkit-examples-and-demos
㈡ ubuntu下qt如何編譯.ui文件
登錄/注冊
linux/Ubuntu下 靜態編譯Qt程序
轉載205 閱讀
mb5ff5917b5bbc5
2017-07-28 07:07:00
關注
一般情況下,我們用Qt編譯出來的程序是要依賴於系統Qt庫的,也就是這個程序移到別的沒有安裝Qt庫的系統上是不能使用的。會提示缺少……庫文件之類的錯誤。這就是動態編譯的結果。
但是如果我們想編譯一個程序,這個程序在發給別人後,他們可以直接打開,而不需要特別地去先安裝Qt庫,那就需要採用靜態編譯了。
在Linux下如何靜態編譯Qt程序呢?
首先需要先安裝靜態編譯的Qt,也就是靜態編譯Qt程序首先是需要一個靜態編譯安裝的Qt
1、下載源安裝程序,如 qt-x11-opensource-src-4.5.1.tar.gz
2、解壓到某一目錄
3、cd 進入解壓後的目錄,命令:
./configure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples -qt-sql-sqlite -prefix /usr/local/Trolltech/Qt-4.5.1_static
./configure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples -qt-sql-sqlite -prefix /usr/local/Trolltech/Qt-4.5.1_static
參數-static 指的是要採用靜態編譯Qt的方法
參數-release指的是只編譯release版本的庫
參數-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg 是更好確定Qt編譯出的程序能在目前不知的系統下運行。
參數-nomake demos -nomake examples 指的是不編譯demos和examples
參數-qt-sql-sqlite 如果沒有這個參數,configure的時候,可能會提示sqlite 有問題而中止。
參數 -prefix /usr/local/Trolltech/Qt-4.5.1_static 指明靜態編譯的Qt安裝的目錄,命名Qt-4.5.1_static是為了區別動態編譯安裝的Qt,因為如果沒有這個參數,安裝時會覆蓋之前動態編譯安裝的Qt(如果有的話)。
4、沒問題後
make
5、make沒問題後再
sudo make install
6、增加(或改變)環境變數:
在你home目錄下你的的名字的目錄中,在.profile文件中追加(或改變)如下環境變數:(為Qt設置一些特定的環境變數,這個很重要!.profile文件是隱藏的,可在你的名字目錄下,按Ctrl+H顯示所有文件查看到)
QTDIR=/usr/local/Trolltech/Qt-4.5.1_static/
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH
QTDIR=/usr/local/Trolltech/Qt-4.5.1_static/
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH
7、重啟
8、在終端測試一下qmake
成功的話,下來用qmake編譯出的Qt程序就是採用靜態編譯的。這時你會發現,靜態編譯出來的程序大小變大了相當多。
靜態編譯與動態編譯的區別
動態編譯的可執行文件需要附帶一個的動態鏈接庫,在執行時,需要調用其對應動態鏈接庫中的命令。所以其優點一方面是縮小了執行文件本身的體積,另一方面是加快了編譯速度,節省了系統資源。缺點一是哪怕是很簡單的程序,只用到了鏈接庫中的一兩條命令,也需要附帶一個相對龐大的鏈接庫;二是如果其他計算機上沒有安裝對應的運行庫,則用動態編譯的可執行文件就不能運行。、
靜態編譯就是編譯器在編譯可執行文件的時候,將可執行文件需要調用的對應動態鏈接庫(.so)中的部分提取出來,鏈接到可執行文件中去,使可執行文件在運行的時候不依賴於動態鏈接庫。所以其優缺點與動態編譯的可執行文件正好互補。
㈢ linux下執行qt程序怎麼編譯運行
qmake -project? 已經有.pro文件了! 直接運行qmake或者qmake snake.pro或qmake -makefile snake.pro.
重新解壓,按以下步驟做:
$ qmake
$ make
找到可執行文件(不是.o, 沒後綴的), 一般如果snake.pro中沒設置TARGET,默認生成的可執行文件為snake,輸入
.$ /snake
㈣ CodeBlocks 如何搭建一個編譯Qt程序的環境
你肯定也是照著這個做的吧
http://www.qtcn.org/bbs/read.php?tid=11847
你是到哪一步不行的?
㈤ buildroot成功後如何編譯Qt應用程序
首先得把我們在X86機上調好的程序進行交叉編譯,如果在X86上都沒有通過的話。。那就不用交叉編譯了,(肯定是通不過的),還是到正題吧,設置好環境變數,我們用以用echo 來查看環境變數,echo $TMAKEPATH ,如果返回的不是.../qws/linux-arm-g++ 的字元的話,我們一定得從新設置,
export TMAKEPATH=/tmake 的安裝路徑/qws/linux-arm-g++ ,同時QTDIR一定得要指定QTE的安裝路徑,設置過程如下:
export QTDIR=...../qt-2.3.7
以上環境設置好後,我們可以使用tmake來生成Makefile,注意這里我們是用tmake,而不是用qmake(注意),tmake工具在tmake包裡面。 具體做法,我們可以在命令行下打:
tmake -o Makefile 工程名.pro
這樣我們就新生成了一個Makefile文件,下一步,我們要打開這個文件,做一些小的修改
1: 將LINK=arm-linux-gcc 改為:LINK=arm-linux-g++
2:將LIBS=$(SUBLIBS) -L$(QTDIR)/lib -lm -lqte這句話改為:
LIBS=$(SUBLIBS) -L/opt/gcc-2.3.2-glibc-3.3.2/lib -L$(QTDIR)/lib -lm -lqte
加上你的交叉編譯的庫。
最後我們可以make了,一個可以在您的板子上可以運行的二進制文件產生了。linux
㈥ 命令行編譯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,生成最終的可執行文件。
㈦ 怎樣編譯 libvlc-qt windows
QtCreator是QT自帶的開發工具,是學習QT非常好的參考資源.
本文提供對編譯QtCreator的簡單描述
(理論上官網發布的都是可以編譯的,但實際編譯時候會遇到一些問題,本文記錄下解決方法)
編譯環境:Windows 7 X64 + Visual Studio 2010 + qt5.0.2
編譯過程:
1.解壓縮qt-creator-2.7.0-src(源碼從qt官網下載)
2.vs2010中,用qt vsaddin打開"qt-creator-2.7.0-src\qtcreator.pro",等待導入完成(需要一定時間,耐心等候)
3.執行編譯。編譯過程可能會有多種錯誤,包括
(a) 錯誤:找不到某個json文件。
解決方法:打開出錯project,在工程中加入json文件就可以。
如果文件系統中不存在這個json文件,則從另外的目錄拷貝一個過來,簡單修改一下內容就可以。
(b) 錯誤:編譯moc生成的cpp文件時,提示找不到某個.h文件。
解決方法:用ultraEdit打開出錯的vcxproj文件,刪除moc.h文件時參數中對該.h文件的強制引用,
(c) 錯誤:找不到DATA_PATH定義。
解決方法:查找出錯工程屬性中預定義變數列表,復制DATA_PATH的預定義內容到源代碼中。
4.修改完編譯錯誤後,重新編譯。因為循環依賴問題,可能要重復多編譯幾次,最終編譯成功。
5.vs2010中,F5運行qtcreator這個project。qtcreator運行成功,
但是會發現qtcreator中的Design標簽頁總是空的,要解決這個問題,繼續執行以下步驟。
6.vs2010中,依次用qt vsaddin打開以下工程,並執行編譯
"qt-creator-2.7.0-src\src\plugins\qmldesigner\qmldesigner.pro"
"qt-creator-2.7.0-src\src\plugins\qmlprojectmanager\qmlprojectmanager.pro"
"qt-creator-2.7.0-src\src\plugins\qmlprofiler\qmlprofiler.pro"
7.運行qtcreator,此時可以發現qtcreator和官網預編譯的版本完全一樣了。
㈧ linux下 qt程序源代碼如何編譯運行
仔細看裡面的源代碼,應該有一些文件里有連接到*.lib文件的,這是QT的動態庫文件把QT庫編譯成linux下的*.lib,然後編譯的時候,把lib文件放在同一文件夾,並且編譯命令加上-l *.lib或者放到根目錄下的lib目錄下也可以。這樣試一下。.o文件還需要經過連接才能生成可執行的文件。