1、首先,QT編譯環境默認是動態庫,要編譯靜態程序是不可能的,所以要下載QT源碼,重新編譯QT編譯環境
2、下載QT源碼(5.13版本):http://download.qt.io/development_releases/qt/5.13/5.13.0-rc/single/qt-everywhere-src-5.13.0-rc.tar.xz
3、編譯QT前需先配置交叉編譯器:
解壓源碼后,進入源碼的qtbase/mkspecs/linux-arm-gnueabi-g++目錄,編輯里面的qmake.conf文件:
將文件里的arm-linux-gnueabi-都改為你用的交叉編譯器(帶路徑,如果不帶路徑則需設置好PATH變量)比如改為:arm-linux-gnueabihf-
4、用靜態方式編譯並安裝QT
在源碼目錄下執行如下命令:
./configure -v -prefix /home/wch/Qt-5-arm -static -release -opensource -confirm-license -xplatform linux-arm-gnueabi-g++ -no-accessibility -no-dbus -no-openssl -no-opengl -no-glib -no-iconv -no-xcb -no-pch -no-compile-examples -no-pkg-config -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -skip qtwayland
make
make install
其中/home/wch/QT-5-arm是安裝目錄,根據你的情況指定;-static是指定為靜態編譯;-xplatform linux-arm-gnueabi-g++是說明目標平台是arm,其它參數根據自己的情況自行修改,各參數的含義可以用./configure --help命令查看
經過上面三步,就在指定的/home/wch/QT-5-arm目錄下生成的QT的編譯環境,該環境的bin目錄下有qmake程序。
5、編譯你的工程
假設你的工程名稱是t1.pro,用如下命令編譯:
qmake -o Makefile t1.pro
make
則會生成靜態程序,一個最簡單的窗口程序大約10M。
用命令t1 -platform linuxfb運行,但是運行時會發現報錯:Could not find the Qt platform plugin "linuxfb"
在t1.pro工程文件里添加一行:QTPLUGIN += qlinuxfb
再用之前的命令重新編譯一下,運行成功!