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

参考链接:

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.

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 下的设置.

设置编译器

L3Byb3h5L2h0dHBzL3lqZHdiai5naXRodWIuaW8vMjAxNi8wOS8xMy9MaW51eCVFNCVCOCU4QiVFNyVCQyU5NiVFOCVBRiU5MSVFOSU5RCU5OSVFNiU4MCU4MU1pbkdXJUU3JThFJUFGJUU1JUEyJTgzLSVFNyVCQyU5NiVFOCVBRiU5MXdpbmRvd3MlRTUlQjklQjMlRTUlOEYlQjBRdCVFNyVBOCU4QiVFNSVCQSU4Ri9xdF9jb21waWxlci5wbmc=.jpg设置编译器

设置Qt版本

L3Byb3h5L2h0dHBzL3lqZHdiai5naXRodWIuaW8vMjAxNi8wOS8xMy9MaW51eCVFNCVCOCU4QiVFNyVCQyU5NiVFOCVBRiU5MSVFOSU5RCU5OSVFNiU4MCU4MU1pbkdXJUU3JThFJUFGJUU1JUEyJTgzLSVFNyVCQyU5NiVFOCVBRiU5MXdpbmRvd3MlRTUlQjklQjMlRTUlOEYlQjBRdCVFNyVBOCU4QiVFNSVCQSU4Ri9xdF92ZXJzaW9ucy5wbmc=.jpg设置Qt版本

添加Qt Kit

L3Byb3h5L2h0dHBzL3lqZHdiai5naXRodWIuaW8vMjAxNi8wOS8xMy9MaW51eCVFNCVCOCU4QiVFNyVCQyU5NiVFOCVBRiU5MSVFOSU5RCU5OSVFNiU4MCU4MU1pbkdXJUU3JThFJUFGJUU1JUEyJTgzLSVFNyVCQyU5NiVFOCVBRiU5MXdpbmRvd3MlRTUlQjklQjMlRTUlOEYlQjBRdCVFNyVBOCU4QiVFNSVCQSU4Ri9xdF9raXQucG5n.jpg设置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/

Linux下搭建 Cocos2d-x-2.1.4 编译环境

[tonyfield 2013.09.04 ] 参考 Linux下搭建 Cocos2d-x-2.1.4 编译环境 导入 HelloCpp 例程 1. Java 入口 HelloCpp.java Hel ...

windows和linux下 Python2,Python3 的环境及安装

目录 windows和linux下 Python2,Python3 的环境及安装 window下安装 一. 手动安装 二. pip安装 linux下 安装 更新Python 笔者有话 windows和 ...

Linux下配置PHP开发环境

转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...

linux下的静态库和动态库

一.linux下的静态库   静态库中的被调用的函数的代码会在编译时一起被复制到可执行文件中去的!!可执行文件在运行不需要静态库的存在!   二.linux下动态库的构建和使用 1.动态库的构建   ...

linux下的静态库和共享库

转载&&增加:      我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期 ...

Windows10下配置Linux下C语言开发环境

今天为大家介绍如在Windows10下配置Linux下C语言开发环境,首先安装linux子系统:启用开发者模式 1.打开设置 2.点击更新和安全3.点击开发者选项 4.启用开发人员模式 5.更改系统功 ...

Linux下的静态IP配置【weber出品】

配置Linux下的静态IP地址 因为服务器的IP地址是固定的,不像我们自己家的笔记本的IP是动态的.所以我们要将这个地址给写成静态的. 直接编辑这个这个配置文件即可: vi /etc/sysconfi ...

(转)Linux下设置和查看环境变量

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值