Linux下编译静态MinGW环境,编译windows平台Qt程序(使用MXE)

时间:2022-07-02 05:55:13

标签:

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

### 一些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/

Linux下编译静态MinGW环境,编译windows平台Qt程序(使用MXE)