- 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 的以下几行:
1 2 3 |
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MD -Zi QMAKE_CFLAGS_DEBUG = -Zi -MDd |
修改为:
1 2 3 |
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
1 2 3 4 5 |
cd /d D:\src\qt-everywhere-src-5.10.1 mkdir build cd /d build D:\src\qt-everywhere-src-5.10.1\build > ..\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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
具体配置详情如下: -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
1 2 |
nmake nmake install |
3、jom
( 优化并行编译的工具替代nmake;nmake在configure时也可以指定-mp参数进行多线程编译 )
1 2 |
jom -j8 jom install |
4、qt.conf
[问题]:添加静态编译的Qt版本,工具->选项->构建和运行->Qt Versions->添加->,此时出现错误
[错误]:qt没有被正确的安装,请运行make install
[解决办法]:在qmake.exe同一文件夹下,创建一个qt.conf文件(必须为ANSI格式)
1 2 |
[paths] Prefix = .. |
fue
[…]although internet sites we backlink to beneath are considerably not related to ours, we really feel they are in fact really worth a go by, so have a look[…]