mingw静态编译qt
‘壹’ Qt-Installer-Framework使用(一)
Qt-Installer-Framework的使用介绍与实践
Qt-Installer-Framework (QIFW),作为Qt官方推荐的打包工具,以其强大的功能满足了日常开发中的大部分需求。本文针对Windows 7 64位系统,采用Qt 5.7.1版本和MinGW 5.3环境,以及QIFW 3.0.6版本进行了测试和验证,后续将进一步扩展支持平台。
QIFW得益于Qt的跨平台特性,支持包括但不限于这些平台:(略)。它的使用方法多样,主要有两种途径。
从源码编译
首先,从Qt官网下载对应版本的源码,注意选择与当前Qt版本兼容的,否则可能导致编译失败。我选择的是3.0.6版本,此版本要求Qt 5.6以上。
我使用静态编译,虽然动态编译过程中遇到了符号链接错误和库文件连接失败的问题,目前我正在深入研究。编译脚本如下:
(脚本内容)
执行脚本后,大约10分钟内完成编译,生成的可执行文件位于工程目录bin下。
直接使用官方编译好的exe编译打包
将Example目录下的示例复制到bin目录,接着编写一个脚本,命令如下:
(脚本命令)
成功执行后,打包后的exe软件会出现在当前路径下。
关于详细的配置和个性化定制,将在后续文章中深入探讨。
‘贰’ Qt Creator怎么静态编译C++程序
如果你说的是Qt程序的话,静态编译就得自行从源码开始编译Qt静态库,官网预编译的版本是不包含静态库的。这个很复杂,请参考qt-everywhere-opensource 中提供的编译帮助。注意如果使用miongw的话,gcc版本最好不要是4.6.2。这个版本比较特殊,但是它是mingw官方版的最新打包版本。
如果你说的是非qt库依赖的话,有两种mingw和vs,前者有部分发行版默认去除了dll依赖,直接连接的静态库,后者非常不推荐使用静态库,毕竟它加载的是系统常用dll,基本上所有系统都是推荐安装的运行时环境,用静态库吃力不讨好。
‘叁’ Qt+GDAL开发笔记(一):在windows系统mingw32编译GDAL库、搭建开发环境和基础Demo
前言
在麒麟系统上进行全球北斗定位终端开发时,调试工具制作一个Windows版本以便校对,北斗GPS发送的是大地坐标,应用需要的是经纬度坐标。转换过程中,我们选择了GDAL库进行转换,避免使用公式计算的繁琐与可能的误差。
注意
不建议使用mingw32版本的GDAL库进行编译,过程异常曲折。
大地坐标简介
大地坐标(Geodetic coordinate)在大地测量中以参考椭球面为基准面,地面点P的位置由大地经度L、大地纬度B和大地高H确定。
原理
大地经度是参考椭球面上点与起始大地子午面(通过格林尼治天文台的子午面)之间的夹角,向东为东经,向西为西经。大地纬度是法线与赤道面的夹角,由赤道面起算,向北为北纬,向南为南纬。大地高是地面点到参考椭球面的距离。
北京54坐标系(BJZ54)
北京54坐标系基于克拉索夫斯基椭球,是通过局部平差后产生的坐标系,由经度L54、纬度M54和大地高H54表示。
世界大地坐标系统(WGS-84)
WGS-84坐标系是世界大地坐标系统,使用WGS-84椭球体,原点设在地球中心,X轴指向格林尼治参考子午线与赤道面的交点,Z轴指向地极方向,Y轴与X、Z轴构成右手坐标系。
国家大地坐标系(CGCS2000)
CGCS2000是当前最新的国家大地坐标系,原点设在包括海洋和大气的整个地球的质量中心,X轴指向格林尼治参考子午线与赤道面的交点,Z轴指向地极方向。
GDAL库介绍
GDAL(Geospatial Data Abstraction Library)是一个开源栅格空间数据转换库,支持各种文件格式,提供命令行工具进行数据转换和处理。OGR是GDAL的一个分支,支持矢量数据。
功能与特征
OGR体系结构
GDAL下载地址
GDAL的下载地址为:gdal.org/download.html,选择3.2.1版本。
准备MSYS2环境
在MSYS2中配置编译环境,可能遇到系统枚举未知问题,尝试使用msys2或msys642解决,确保成功编译。
使用Qt5.9.3 mingw32进行编译
将Qt5.9.3 mingw32编译器复制到MSYS2根目录,确保引入成功。
路径配置与编译GDAL
配置路径、编译GDAL,包括下载、解压、配置、编译和安装步骤,遇到问题时使用强制方法解决问题。
编译PROJ6
类似步骤进行下载、解压、配置、编译和安装PROJ6,解决可能遇到的问题。
编译SQLITE3
下载、解压、配置、编译和安装SQLITE3,解决配置错误,确保库正确编译。
编译pkgconfig(废弃步骤)
尝试编译pkgconfig,但由于废弃不再使用,此步骤仅保留。
结尾
经过一系列尝试与优化,成功编译并安装GDAL、PROJ6和SQLITE3库。建议读者避免使用mingw32版本的GDAL库,以简化编译过程。
‘肆’ Qt Creator 怎样设置才能实现静态编译
Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
1.将C:\Qt\2010.05\qt\mkspecs\win32-g++文件中的QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
改为
QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-
auto-import -Wl,-enable-runtime-pseudo-reloc
2.在开始菜单里找到Qt Command Prompt并运行,输入命令: configure -static -debug-and-release -no-exceptions -L "C:\Qt\2010.05\qt\include" -L "C:\Qt\2010.05\qt\lib"
-L指定一下路径,防止用到vc的头文件
选择开源:O;选择license:y;
3.上一条命令运行成功后再输入命令: mingw32-make sub-src
等1 ~3 小时可能就运行完了 完成后就ok了。。。