標籤:loading libtool nal 目錄 32位 如何使用 openssl 工具鏈 bash
- 參考連結:
- MXE.
>
大多數程式都是在windows平台下開發的程式.windows 在現實中也是繞不過的一個系統平台,做為受過幾年VC,MFC”虐待”的程式員,在做為一個程式員之前是一位Linux重度使用者,受夠了MFC之後一直想要找一個架構替換,
使用過GTK,wxWidgets,Qt,最後還是Qt用得多一些.我認為程式跨平台應該是一個基本標準,同一份代碼不需改動,或者改動極少,放在不同的平台下編譯就能使用.不同平台,同樣的介面,同樣的操作,同樣的體驗.
這裡要講的是我如何在Linux 下開發跨平台的Qt程式,如何在linux開發windows程式.
>
MXE (M cross environment)
- MXE 真的是一個了不起的項目,詳情請查看上面連結,非常詳細.因為MXE就是在Linux下靜態編譯的跨平台環境,不需要你一步一步繁雜的編譯工具鏈,直接按教程一鍵make就下載安裝好,但是對Linux的操作熟悉會更加好排錯.
安裝教程
- 盡量查看英文教程,這裡簡單記錄一在
debian8 x86_64
下的安裝過程.遇到問題找google.
1234567 |
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 |
擷取最新版本
123 |
$ 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.
12 |
$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.
123 |
QMAKE_CXXFLAGS_RELEASE += -g QMAKE_CFLAGS_RELEASE += -gQMAKE_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/
Linux下編譯靜態MinGW環境,編譯windows平台Qt程式(使用MXE)