- 參考鏈接:
- MXE.
>
大多數程序都是在windows平台下開發的程序.windows 在現實中也是繞不過的一個系統平台,做為受過幾年VC,MFC”虐待”的程序員,在做為一個程序員之前是一位Linux重度使用者,受夠了MFC之后一直想要找一個框架替換,
使用過GTK,wxWidgets,Qt,最后還是Qt用得多一些.我認為程序跨平台應該是一個基本標准,同一份代碼不需改動,或者改動極少,放在不同的平台下編譯就能使用.不同平台,同樣的界面,同樣的操作,同樣的體驗.
這里要講的是我如何在Linux 下開發跨平台的Qt程序,如何在linux開發windows程序.
>
MXE (M cross environment)
- MXE 真的是一個了不起的項目,詳情請查看上面鏈接,非常詳細.因為MXE就是在Linux下靜態編譯的跨平台環境,不需要你一步一步繁雜的編譯工具鏈,直接按教程一鍵make就下載安裝好,但是對Linux的操作熟悉會更加好排錯.
安裝教程
|
1
2
3
4
5
6
7
|
apt-get install \
autoconf automake autopoint bash bison bzip2 flex gettext\
git g++ gperf intltool libffi-dev libgdk-pixbuf2.0-dev \
libtool libltdl-dev libssl-dev libxml-parser-perl make \
openssl p7zip-full patch perl pkg-config python ruby scons \
sed unzip wget xz-utils g++-multilib libc6-dev-i386 libtool-bin
|
獲取最新版本
|
1
2
3
|
$
cd /opt
$ git
clone https://github.com/mxe/mxe.git
$ make MXE_TARGETS=
'x86_64-w64-mingw32.static i686-w64-mingw32.static' qt5
|
- 如果中間不出錯,安裝完成如下.
i686-w64-mingw32.static目錄下就在如:我電腦系統64位下編譯32位的exe, 而x86_64-w64-mingw32.static就是編譯生成64位的exe.
|
1
2
|
$ls /opt/mxe/usr/
bin i686-w64-mingw32.static include installed lib libexec share x86_64-unknown-linux-gnu x86_64-w64-mingw32.static
|
設置Qt
-
英文教程有詳細教程如何使用,如:(autotools,CMake,Makefile,QT…),這里貼圖記錄一下在
QtCreator下的設置. -
設置編譯器
設置編譯器 -
設置Qt版本
設置Qt版本 -
添加Qt Kit
設置Qt版本 -
現在就可以在
Qt Creator里的工程下添加這個Kit里了,因為這里只是靜態編了Release版本,如果指定為Debug配置,編譯會出錯的.
### 一些Qt 工程問題
Linux GL 鏈接庫錯誤.
- 如果在Linux遇到鏈接系統下的GL庫出錯,只要在.pro 加入
QMAKE_LIBS_OPENGL -= -lGL,重新qmake,編譯.
Release版本加入調試符號
- 在實際開發有遇到這種問題,在Linux的編譯Debug,Release調試與運行都沒有錯誤,但是在windows平台下運就崩潰出錯,這時調試最有效的調試手段是是加入調試符號信息,在windows下運行GDB加載該程序,查看出錯的原因.pro \
- 在.pro中在加如下三行,重新
qmake,編譯.帶調試信息的exe會長到幾十M.
|
1
2
3
|
QMAKE_CXXFLAGS_RELEASE += -g
QMAKE_CFLAGS_RELEASE += -g
QMAKE_LFLAGS_RELEASE =
|
https://yjdwbj.github.io/2016/09/13/Linux%E4%B8%8B%E7%BC%96%E8%AF%91%E9%9D%99%E6%80%81MinGW%E7%8E%AF%E5%A2%83-%E7%BC%96%E8%AF%91windows%E5%B9%B3%E5%8F%B0Qt%E7%A8%8B%E5%BA%8F/
