qt静态编译

Qt采用编译的方式安装的时候,配置中默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,所以在此介绍一下qt如

Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:1.将C:\Qt\2010.05\qt\mkspecs

如果你说的是Qt程序的话,静态编译就得自行从源码开始编译Qt静态库,官网预编译的版本是不包含静态库的.这个很复杂,请参考qt-everywhere-opensource 中提供的编译帮助.注意如果使用miongw的话,gcc版本最好不要是4.6.2.这个版本比较特殊,但是它是mingw官方版的最新打包版本.如果你说的是非qt库依赖的话,有两种mingw和vs,前者有部分发行版默认去除了dll依赖,直接连接的静态库,后者非常不推荐使用静态库,毕竟它加载的是系统常用dll,基本上所有系统都是推荐安装的运行时环境,用静态库吃力不讨好.

你说的是编译静态库吧,在pro文件如下设置即可编译静态库:TEMPLATE = libCONFIG += staticlib

通常不需要在系统变量中加入Qt库的位置的.Qt Creator可以自动扫描到系统中存在的Qt库版本,如果扫描不到,可以通过Creator的 Tool->Options->Qt4中添加静态库的路径.而QDevelop虽然没有那么智能,但是可以手动指定INCLUDE和LIB的位置.或许,这根本就不是一个问题.如果怀念动态库,或者在产品发布之前并不想体验静态编译那种蜗牛爬一般的速度,可以在pro文件中指定CONFIG += shared,而且,要记得在Project中选择相应的版本.

如果你说的是Qt程序的话,静态编译就得自行从源码开始编译Qt静态库,官网预编译的版本是不包含静态库的.这个很复杂,请参考qt-everywhere-opensource 中提供的编译帮助.注意如果使用miongw的话,gcc版本最好不要是4.6.2.这个版本比较特殊,但是它是mingw官方版的最新打包版本.如果你说的是非qt库依赖的话,有两种mingw和vs,前者有部分发行版默认去除了dll依赖,直接连接的静态库,后者非常不推荐使用静态库,毕竟它加载的是系统常用dll,基本上所有系统都是推荐安装的运行时环境,用静态库吃力不讨好.

可以.Qt只能动态编译.

所有的dll加起来也才40M左右吧,哪有400M那么大.静态编译的话,需要将整个qt库重新按静态进行编译才行.具体方法在OSC开源中国中有,你可以搜索下.

Qt 如何编译成可执行程序,像VC的静态编译,可以在脱离QT 开源版本 不允许静态编译 可以将DLL打包,就能再其他的机器上运行了.检

1、Qt 5.0比以往相比,需要有perl环境.因此要在你的环境变量中添加perl.2、configure当中去除了一些参数,比如no-webkit,同时又添加了一些,比如icu.3、Webkit和QtCore都需要ICU.ICU是一个处理unicode的库,如果你没有准备,webkit的编译自动跳过,core的编译使用其它方法避开ICU.4、由于QPA的存在,与平台相关的部分被抽象成了插件,这个后面再说.5、默认启用了ANGLE作为OpenGL和DirectX之间的桥梁,如果你没有准备ANGLE,需要额外的-opengl desktop参数6、默认支持C++11.基于此,推荐使用支持C++11的编译器.

相关文档

qt交叉静态编译依赖库
qt msvc静态编译
vs qt静态编译
怎么静态编译
qt编译静态库
vs静态编译
qt5.12静态编译
qt如何变成动态编译
beabigtree.com
pdqn.net
dfkt.net
skcj.net
pxlt.net
电脑版