qt如何静态编译程序
很多时候,我们发布程序的时候,在没有qt依赖环境的地方,都需要将qt所依赖的动态库加入项目同路径.
这样会让强迫症的码农感觉很麻烦.要想一个exe走天下,我们就会想到静态编译了.
下面是具体实现步骤:
1.编译静态版本的qt库.
2.构建静态编译环境.
3.生成静态版本exe
编译静态qt库:
这里默认大家都已经安装了qt. 我编译的事mingw32版本的.msvc大体参考吧.
首先检查自己是否安装了peal和python以及gcc环境.
进入截图所示窗口,分别输入python gcc -v perl -v 看是否有对应的版本信息,
若无.请安装对应的软件并添加环境变量.安装过程中可将自动添加环境变量勾选.
这一步好了之后我们开始配置编译
在自己的qt环境里面新建mingw49_32_static文件夹.并从上图的cmd窗口移动到新建的文件夹内执行下面的配置项 ps:路径按实际值替换
H:\Qt5.6.3\5.6.3\Src\qtbase\configure -confirm-license -opensource -platform win32-g++ -debug-and-release -static -static-runtime -nomake examples -nomake tests -skip qtwebengine -prefix "H:\Qt5.6.3\5.6.3\mingw49_32_static" -opengl desktop -no-angle
大概解释下上面配置的含义:
-confirm-license: 自动确认许可证(使用开源或是商业)
-opensource: 编译并链接Qt的开源版本。
-platform win32-g++: 选择的编译版本
-debug-and-release: 两个版本均可静态编译.
-static: 创建并使用qt静态库
-static-runtime: 静态链接C/ c++运行时库
-nomake examples: 不编译例子
-skip qtwebengine: 从构建中排除qtwebengine模块
-prefix: 部署目录
-opengl desktop: 启用 OpenGL 支持.不带参数时,这将会尝试自动检测的 OpenGL ES 2.0 和更高版本,或常规的桌面版OpenGL.
-no-angle: 直接使用OpenGL的API进行渲染,需要显卡厂商支持 OpenGL ES 2.0
如果需要添加或删减更多功能.请遵循config文档查阅即可.
这步没出错的话继续执行下面的命令:编译
mingw32-make -j2
后面j2表示双线程编译.视电脑好坏可多开线程提升编译速度.
接下来执行安装命令
mingw32-make install
这些都完成以后
用记事本打开 H:\Qt5.6.3\5.6.3\mingw49_32_static\mkspecs\win32-g++\qmake.conf
找到 QMAKE_LFLAGS 和 QMAKE_LFLAGS_DLL将后面都改成 -static
最后找到H:\Qt5.6.3\5.6.3\mingw49_32\bin\qt.conf 将静态库里面的H:\Qt5.6.3\5.6.3\mingw49_32_static\bin的qt.conf 替换保存
不出意外的话静态版本编译环境就完成了.
剩下的就是 打开Qt Creator -> 工具 -> 选项 -> 构件和运行 -> Qt Versions.配置我们编译好的静态环境. 可以愉快的静态编译了.
标签:Qt,OpenGL,静态,编译,static,版本,qt From: https://www.cnblogs.com/atggg/p/16878575.html