Qt 5.10.1 & vs2017 静态编译
2018-03-07 本文已影响315人
凡式
凡式原创,转载请注明
- 2018-03-05
准备:
1、源代码&编译器
- qt-everywhere-src-5.10.1.tar.xz 5.10.1
- Visual Studio Enterprise 2017 15.5.6
2、编译环境(add to path)
编译:
1、mkspecs
将Qt源代码路径下面 qtbase\mkspecs\common\msvc-desktop.conf 的以下几行:
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
修改为:
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
2、configure
开始 -> Visual Studio 2017 -> x86 Native Tools Command Prompt for VS 2017 或者 x64 Native Tools Command Prompt for VS 2017
cd /d D:\src\qt-everywhere-src-5.10.1
mkdir build
cd /d build
D:\src\qt-everywhere-src-5.10.1\build > D:\src\qt-everywhere-src-5.10.1\configure.bat -h
D:\src\qt-everywhere-src-5.10.1\build > configure.bat -confirm-license -opensource -release -static -force-asserts -platform win32-msvc -prefix C:\Qt\Qt5.10.1-vs2017-static -static-runtime -mp -silent -opengl desktop -qt-sqlite -qt-pcre -qt-zlib -qt-freetype -qt-harfbuzz -qt-libpng -qt-libjpeg -nomake examples -nomake tests
具体配置详情如下:
-confirm-license -opensource
-release 版本
-static 静态
-force-asserts
-platform win32-msvc 版本
-static-runtime
-mp 多线程编译
-silent 不显示编译时多余的大量信息
-opengl desktop 选择desktop而不是dynamic,避免qcustomplot无法使用opengl
-qt-sqlite 三个选项[system/qt/no]选择源码自带
-qt-pcre 三个选项[system/qt/no]选择源码自带
-qt-zlib 三个选项[system/qt/no]选择源码自带
-qt-freetype 三个选项[system/qt/no]选择源码自带
-qt-harfbuzz 三个选项[system/qt/no]选择源码自带
-qt-libpng 三个选项[system/qt/no]选择源码自带
-qt-libjpeg 三个选项[system/qt/no]选择源码自带
-nomake examples 不编译例子
-nomake tests 不编译测试
3、nmake & nmake install
nmake
nmake install
3、jom
( 优化并行编译的工具替代nmake;nmake在configure时也可以指定-mp参数进行多线程编译 )
jom -j8
jom install
4、qt.conf
[问题]:添加静态编译的Qt版本,工具->选项->构建和运行->Qt Versions->添加->,此时出现错误
[错误]:qt没有被正确的安装,请运行make install
[解决办法]:在qmake.exe同一文件夹下,创建一个qt.conf文件(必须为ANSI格式)
[paths]
Prefix = ..