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 下的设置.
  • 设置编译器

    设置编译器

  • 设置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/

时间: 2024-10-25 04:12:48

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

Linux下实现Mysql开发环境的部署和数据库程序的实现

SQL本身并不复杂,实际上我感觉部署mysql的环境才是最复杂的. 这里采用了centos6.5系统来部署环境. 首先需要安装数据库和数据库开发环境,以及编译环境 yum install MySQL MySQL-server MySQL-devel gcc gcc-c++ -y 然后运行数据库 service mysqld start 如果你用的是centos7以上的系统,mysql就被mariadb取代用以下命令执行 systemctl start mariadb.service 现在直接在控

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

目录 windows和linux下 Python2,Python3 的环境及安装 window下安装 一. 手动安装 二. pip安装 linux下 安装 更新Python 笔者有话 windows和linux下 Python2,Python3 的环境及安装 window下安装 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机]-->[属性]-->[高级系统设置]-->[高级

linux下nginx,mysql,php(lnmp)编译安装

关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenforce 0 #使配置立即生效 mysql 5.5.28安装 安装路径:/usr/local/mysql数据库路径:/usr/local/mysql/data/ mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具

linux下的静态连接库和动态链接库

对linux的静态连接库和动态链接库分不清楚,在看了一篇博文后,现在想做个自己的总结,以加深印象: 1.库的基本概念: 库是可执行代码的二进制形式,其可以被调入操作系统调入内存进行执行. 在window和linux系统,都存在各自的库,但是两种系统的库并不能兼容,因为它们的编译器,连接器,汇编器都是不相同的. 在windows下,静态连接库的后缀是.lib;动态链接库的后缀是.dll 在linux系统下,静态链接库的后缀是.a;动态链接库的后缀是.so 2.静态连接库和动态链接库的命名: 静态连

Linux下配置OpenCV1.0环境

自己一直嚷嚷着打算学学图像识别,识别个简单的,车牌号,验证码之类的,之前查过资料,OpenCV可以实现.昨天花了一个下午终于配置好环境了,今天写下总结. OpenCV这一名称包含了Open和Computer Vision两者的意思.实际上,Open指Open Source(开源,即开放源代码),Computer Vision则指计算机视觉.更详细介绍,请参考:http://zh.wikipedia.org/wiki/OpenCV 配置环境系统信息:Linux [email protected]:

Linux下配置PHP开发环境

转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件外,还要安装一些相关工具,设置必要参数.而且,如果要使用PHP扩展库,还要进行编译.安装之前要准备如下安装包: http-2.2.8.tar.gz.下载地址:http://www.apache.org. php-5.2.5.tar.gz.下载地址:http://www.php.net/downloa

linux下的静态库和动态库

一.linux下的静态库 静态库中的被调用的函数的代码会在编译时一起被复制到可执行文件中去的!!可执行文件在运行不需要静态库的存在! 二.linux下动态库的构建和使用 1.动态库的构建 gcc  -fPIC  -shared    -o  lib库名.so   源文件列表 例: gcc   -fPIC  -shared  -o  libmylib.so  max.c  min.c 2.动态库使用 gcc    -o  最终的可执行文件  源文件列表  -L 动态库的目录  -l库名 例子: 已

linux 下cocos2dx-3.3.1环境搭建

1.安装依赖 依赖包含: libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-dev libxi-dev g++ libzip-dev libpng12-dev libcurl4-gnutls-dev libfontconfig1-dev libsqlite3-dev libglew*-dev libssl-dev 假设你的系统是Ubuntu/Debian,能够通过运行build文件夹下的install-deps-linux.sh脚本来安装依赖,也可自

Linux下搭建PHP开发环境(LAMP)

LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python 安装方法如下: 注:Ubuntu下可使用sudo su 命名切换到root用户. 开始安装之前,先执行EZHTTP安装前的准备工作. 一.使用screen(可选) 由于编译安装Nginx Apache PHP MySQL等软件会花费比较长的时间,难免会出现由于网络意外中断而导致安装也中断了,所以为了避免此问题,可以使用screen来安装. screen的使用方法如下: 1.安装screen ubunt