ubuntu靜態編譯qt
⑴ QT 在Ubuntu下無法編譯,怎麼解決
g++沒有安裝,一般這種情況都是環境中找不到編譯器的緣故。你這只是簡單安裝的linux的桌面版qt,所以只要環境中有c++即可,如果你是安卓,那東西就更多了,ant,java,sdk等等。
解決辦法:sudo apt-get install g++
⑵ Qt Creater怎麼編譯出靜態連接的程序
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的頭文件
選擇開源:O;選擇license:y;
3.上一條命令運行成功後再輸入命令: mingw32-make sub-src
等1 ~3 小時可能就運行完了 完成後就可以了。
⑶ 如何靜態編譯發布Qt應用程序
如果你說的是Qt程序的話,靜態編譯就得自行從源碼開始編譯Qt靜態庫,官網預編譯的版本是不包含靜態庫的。這個很復雜,請參考qt-everywhere-opensource 中提供的編譯幫助。注意如果使用miongw的話,gcc版本最好不要是4.6.2。這個版本比較特殊,但是它是mingw官方版的最新打包版本。
如果你說的是非qt庫依賴的話,有兩種mingw和vs,前者有部分發行版默認去除了dll依賴,直接連接的靜態庫,後者非常不推薦使用靜態庫,畢竟它載入的是系統常用dll,基本上所有系統都是推薦安裝的運行時環境,用靜態庫吃力不討好。
⑷ ubuntu怎麼編譯qt5源代碼
以下是編譯QT源碼的基本步驟:
1.源代碼的獲取 , 最新的是4.8.2版本。
2.解壓代碼
輸入指令: tar zxvf qt-everywhere-opensource-src-4.8.2.tar.gz,解壓出QT源代碼。
3.執行./config生成makefile
輸入指令: ./config
下面會出現提示,是使用the Commercial Edition還是Open Source Edition。
選擇」o」,接著會出現一些提示關於license的信息,選擇」yes」。
4.編譯QT
等在Ubuntu中順利下載了缺失的那3個lib後。再次重復第三步的 ./configure指令。
輸入指令: make,
然後便可以順利地生成Makefile文件。
5.安裝QT
運行指令: sudo make install,需要幾分鍾的時間,系統會默認將Qt安裝到目錄:/usr/local/Trolltech/Qt-4.8.2。
驗證安裝完成:運行/usr/local/Trolltech/Qt-4.8.2/bin/designer,如果能夠正常啟動designer,則說明Qt已經安裝好了。
6.設置環境變數
7.測試環境變數
⑸ QT程序在ubuntu中的編譯問題,求大神指點是什麼錯誤
找不到QT庫呀 看下你的QT環境變數設置的對嗎 對的話檢查下有沒有QtGui/QApplication這個文件 沒有的話可能需要重新安裝QT
⑹ ubuntu64位怎麼編譯32位qt庫
64位可以編32位的程序出來,在各種FLAGS中增加 -m32 編出來的就是32位程序,連接時自然是找32位的共享庫
這個要看發行版對32位支持的實現,比如gentoo下如果開abi支持雙架構那很可能悲劇,因為有些包還沒跟上,如果用binary的32位庫又會因為版本不同出現莫名其妙的問題,比如fontconfig的坑。
我在64位編32位程序都是使用chroot的方法,這樣就可以把32位的頭文件庫什麼的全放在某個地方。我用的是ubuntu,32位庫和64位庫位置不一樣,一般可以直接安裝32位的庫,如果遇到某些比較特殊的庫,一般都可以通過重新編譯增加rpath解決,如果沒源碼也可以用patchelf直接給elf上rpath。
如果您認可我的答案,請採納。
您的採納,是我答題的動力,O(∩_∩)O謝謝!!
⑺ 在ubuntu中 怎樣用qt designer編寫生成一個界面可以顯示圖形
用快速開發工具Qt Designer編寫Qt程序
我們用的開發系統是Linux,開發工具是Qt Designer.如果大家安裝完整版的Linux,系統就帶這個工具了.大家可以點擊應用程序->編程->Qt Designer來找到它.
Qt Designer首先呈現給用戶的是一個New/Open對話框。因為這里要創建一個C++程序,所以在此選擇C++ Project,點擊「OK」繼續。
選擇一個想要保存文件的位置,並且給出一個文件名,注意這里文件名的擴展名一定要是.pro。點擊「OK」後,到下面的界面.
現在我們看到的就是Qt Designer主窗口,確保Property Editor可見。如果它是不可見的,用戶可以通過Windows→Views→Property Editor/Signal Handlers選單選項來使其可見.
下面我們建立一個如下圖所示的對話框.
通過選擇File→New選單,然後選擇Dialog來創建一個新的對話框。這時Qt Designer會創建一個新的空白對話框,用戶可以在其上放置輸入框和按鈕。
打開Property Editor,把name的值改為「MainForm」,把caption的值改為「Hello world」。 '
然後我們在對話框上拖拽上一個lable,方法是在左面Toolbox的common widgets里的TextLabel,然後在空白對話框上畫一下.改一下caption的值改為「Hello world」就得到如下的界面了.
現在就已經基本完成這個應用程序了。不過在編譯和運行此應用程序之前,還要創建一個main.cpp文件。方法是選擇File→New→C++Main- File(main.cpp),只需接受預設的配置即可。main.cpp會自動在Code Editor中打開。因為這里無需改變main.cpp中的 任何東西,所以直接將Code Editor窗口關閉,並且保存main.cpp。
到此為止,在Qt Designer中的工作已經完成了。保存整個項目,下面來編譯和運行這個程序。在編譯程序之前,要首先生成它的Makefile文件。打開一個終端,然後切換至保存有項目的位置,使用以下命令來生成Makefile文件:
#qmake -o Makefile hellopro
現在,就可以運行make來編譯程序了,根據系統的性能,這個步驟需要花費一點時間。當編譯工作完成後,輸入./hello來運行程序。如果一切正常,用戶應該已經看到程序了。
下面是我電腦上程序的界面:
到這里我們完成了第一個Qt的程序,怎麼樣呢,是不是有點小成就感.
⑻ 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)中的部分提取出來,鏈接到可執行文件中去,使可執行文件在運行的時候不依賴於動態鏈接庫。所以其優缺點與動態編譯的可執行文件正好互補。
⑼ ubuntu怎麼編譯arm的qt程序
先找到可以編譯arm的gcc(或者自己編譯),然後再用這個arm版的gcc編譯Qt程序。