qt静态编译mingw
⑴ 如何静态编译发布Qt应用程序
如果你说的是Qt程序的话,静态编译就得自行从源码开始编译Qt静态库,官网预编译的版本是不包含静态库的。这个很复杂,请参考qt-everywhere-opensource 中提供的编译帮助。注意如果使用miongw的话,gcc版本最好不要是4.6.2。这个版本比较特殊,但是它是mingw官方版的最新打包版本。
如果你说的是非qt库依赖的话,有两种mingw和vs,前者有部分发行版默认去除了dll依赖,直接连接的静态库,后者非常不推荐使用静态库,毕竟它加载的是系统常用dll,基本上所有系统都是推荐安装的运行时环境,用静态库吃力不讨好。
⑵ QT中怎么静态编译,静态编译的步骤是什么。
Qt采用编译的方式安装的时候,配置中默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,所以在此介绍一下qt如何来进行静态编译第一步:下载源码包Qt/X11版本:qt-x11-opensource-src-4.5.2.tar.gz第二步:解压缩tarzxvfqt-x11-opensource-src-4.5.2.tar.gz第三步:进入到刚才解压缩后的文件夹下并进行配置,如下./configure-release-platformwin32-msvc2008-static-nomakeexamples-nomakedemos-no-qt3support-no-scrip
...
by
fengyetang
2010-07-04
回复
(0)
⑶ QT用VS还是MINGW编译好,有什么区别
MinGW 兼容性更好,调试也更方便。
VS生成的 exe 发布时依赖的 dll 少一些,其他都不如 mingw。
⑷ 编译Qt 4.7.3在GCC 4.6 MinGW问题,怎么解决
认真核操作步骤:
1、修改环境变量工具推荐:Rapid Environment Editor
修改前请先备份前环境变量:
(1)检查系统变量path删除关mingw其版本等信息免与续mingw32-make冲突
(2)检查用户变量INCLUDE、LIB、PATH、MSDevDirMSVCDir删除关\Microsoft Visual Studio\VC98信息与续mingw32-make冲突导致编译错
2、????电脑安装mingw编译器假设路径安装C:\Qt\mingw32C:\Qt\mingw32\bin添加进环境变量path打DOS命令行输入gcc --versiong++ --versionmingw32-make --version验证编译器安装功我用MinGW版本V4.8.2
3、解压qt-everywhere-opensource-src-4.8.6.zip并进入目录例:D:\qt-everywhere-opensource-src-4.8.6\
4、依执行DOS命令:
(1)configure -debug-and-release -opensource -prefix "D:\Qt4.8.6" -platform win32-g++ -nomake demos -nomake examples
见使用选项说明:
-debug-and-release 编译debugrelease版
-opensource 选择源协议并确认
-platform win32-g++ 使用mingw编译
-prefix "D:\Qt4.8.6" 指定编译结目录,未指定则默认前
-shared 创建使用共享Qt库
-static 创建使用静态Qt库
-nomake demos -nomake examples 编译例程
-nomake tests 编译tests
-skip qtwebkit 忽略qtwebkit编译特别消耗间
-mp 使用核优化编译
(2)mingw32-make
(3)mingw32-make install
5、编译完C:\Qt\mingw32\bin\路径三文件libgcc_s_dw2-1.dll、libstdc++-6.dlllibwinpthread-1.dll拷贝D:\qt-everywhere-opensource-src-4.8.6\bin\另外请步骤1备份环境变量原
6、修改Qt安装路径
初编译选择路径D:\Qt4.8.6\想复制其盘符并且改名例:C:\Qt\4.8.6_MinGW问题问题Qt绝路径依赖症改名C:\Qt\4.8.6_MinGW\bin\exe执行程序都问题要程序打要语言发异用记事本打C:\Qt\4.8.6_MinGW\bin\qmake.exe查找关键字qt_prfxpath看面含原始安装路径我手修改qmake.exe真效解决:
C:\Qt\4.8.6_MinGW\bin\路径创建qt.conf文件内容
[paths]
Prefix = C:/Qt/4.8.6_MinGW
请注意:qt.conf文件必须ANSI格式并且Prefix斜杠风格采取Linux非Windows否则失效或者使用"Prefix = .. "任意路径效
⑸ qt编译问题
QT默认安装后 在options 下有 QT4 选项 有QT versions 需要设置下QT的目录
QT的编译采用MinGW的编译器(开源版)MinGW是GCC的Win移植版.
Could not find make command: mingw32-make.exe in the build environment 意思是找不到MinGW的make工具,请将MinGW的bin目录加入系统的path变量中,在options中有调试器(debug)中选择mingw调试器gdb的位置
(位于MinGw bin目录下)
⑹ Qt creator中的 minGW是什么
楼上说的差不多,其实GCC是编译器,MinGW实际上是GCC和binutils等移植到Windows的结果。
GCC是编译器,但是需要类似posix的平台,而其ABI早期支持的Linux\unix,MingW改造了其中代码,使gcc能够支持Windows。MinGW本身也存在多个分支,可以在Windows、Linux中编译能在Windows中执行的二进制代码。
MingW和CygWin不同,MingW能够编译gcc的程序,但是不能编译那些依赖POSIX模型的程序,例如需要fork等函数的程序。CYGWin整个构造了一个类似POSIX的环境。
简单的说,MingW是GCC编译器的一个分支,能够编译生成windows下可执行的程序。为了达到这个目标,通常的MinGW软件包,包含了类似binutil、gdb等一系列工具的集合。
PS.
gcc\gdb\binutils等属于“工具”软件,合称“工具链”toolchain
⑺ 群内有人用mingw编译的静态编译库成功编译过qt+mysql的程序吗
mingw编译出来的静态库后缀名为.a,编译出来的动态库的导入库后缀名为.dll.a,而在windows下后缀名为.lib的库可能是静态库也可能是动态库的导入库。
mingw编译出来的动态库的导入库可以直接在vc中直接使用,例如
#pragma comment(lib, "libx264.dll.a")
这样你就不需要生成一个.lib后缀的动态库的导入库了,网上也有如何从.dll生成.lib的方法。
如果链接了动态库的导入库libpthread.dll.a,你发布的应用程序就要带上pthread的dll。
使用静态库的好处是发布的应用程序组件模块里不需要带上相关的dll,如果要使用mingw编译出来的静态库,可以如下:
#pragma comment(lib, "libx264.a")
但是仅仅链接这么一个静态库是不够的,你还需要链接
libgcc.a
libmingwex.a
你可能还需要链接libmsvcrt.a
否则会报一堆错误:error LNK2001: 无法解析的外部符号
上面的这些库在C:\MinGW\lib目录或子目录下面可以找到。
链接这些库的原因是mingw使用的gcc编译器和vc编译器之间存在差异
⑻ QT用VS还是MINGW编译好,有什么区别
都可以。
有时候会用到windows底下一些头文件,这时候可以用VS编译,如果用mingw编译的话有时候会找不到这些头文件。一般情况下用mingw就可以。
⑼ qt5.8 for mingw编译静态版本时怎么加mysql
注意编译器一定要和MYSQL的平台版本一致,32位的用32位的编译器编译,64位的用64位的编译器编译。
准备工作:MYSQL的目录:D:\SQL_Server\mariadb
Qt5.1.1的目录:C:\Qt
1. 先将D:\SQL_Server\mariadb中的include\和lib\文件夹复制到根目录(C:),因为后面make时路径不能有空格。
2. 打开QT5.1.1 for Desktop(MinGW 4.8)
cd C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=D:\SQL_Server\mariadb\include" "LIBS+=D:\SQL_Server\mariadb\lib\libmysql.lib" mysql.pro
mingw32-make
如果出现找不到mysql.h文件就用qtcreator打开mysql.pro文件,配置项目,然后编译,就会出现错误提示,把#include 改成#include ,编译就行了,或回到命令行再次执行mingw32-make即可.
3. 编译成功后。
进入到C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\plugins\sqldrivers目录下,选中qsqlmysql.dll和 qsqlmysqld.dll两个文件,
复制到C:\Qt\Qt5.1.1\5.1.1\mingw48_32\plugins\sqldrivers目录下。