Visual Studio 2019编译QT5.12.0 x64
2021-07-14 20:26:32 900
下载源码
https://download.qt.io/archive/qt/5.12/5.12.0/single/
编译工具
Perl
https://strawberryperl.com/download/5.26.3.1/strawberry-perl-5.26.3.1-64bit-portable.zip
Ruby
Python
以上的都要加入环境变量内
OpenSSL (可选)
openssl的编译看这个 https://blog.22xcode.com/article/537118021248876545
如果链接 openssl, configure如下 (x86/x64和debug/release要相互匹配)
(静态)
configure.bat
-static -static-runtime
-prefix "D:/qt"
-confirm-license -opensource
-release
-static
-ssl
OPENSSL_LIBS="-lssleay32 -llibeay32 -lUser32 -lAdvapi32 -lGdi32" -- 动态可以不用这个
-openssl-linked
-ID:\openssl\include -- 头文件目录
-LD:\openssl\lib -- 库目录 -- 动态可以不用这个
-platform win32-msvc
-nomake examples -nomake tests
-plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg
-opengl desktop
-mp
我5.12.0
的qt, 匹配的是openssl-1.0.2u
的openssl
注意动态/静态链接, x86和x64都要匹配上
编译
MDd
qt-source-5.12.0\qtbase\mkspecs\common\msvc-desktop.conf
QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD
QMAKE_CFLAGS_DEBUG = -Zi -MDd
MD
表示运行时是多线程动态库
MDd
的 d 则是带上了debug信息的库
MT
多线程静态库
平常开发可以用MDd
, 发布出去则需要使用MD
/MT
MD
要带上QT的一堆dll, 发布出去还需要配合安装包之类的
MT
则是一个文件, 适合小工具发布, 据说按qt的开源许可, 如果是MT, 则需要公开源码
编译64位的需要用到x64 Native Tools Command Prompt for VS 2019
, 安装visual studio会自动带上, 以下命令行操作都在这个工具内进行
Configure
源码路径下
configure.bat -static -prefix "D:\qt" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
(静态编译还要修改msvc-desktop.conf
, MD
改为MT
)
configure.bat
-static //静态编译
-prefix "D:/qt" //指明安装的目录
-confirm-license -opensource //指明是开源版本的qt
-debug-and-release //指明需要debug版和release版,可以单独选择release版
-platform win32-msvc //指明使用msvc编译
-nomake examples -nomake tests //不编译样例
-plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg //可选插件
-opengl desktop
-mp //多核编译
如果选了OpenSSL链接
则输出会有
OpenSSL ................................ yes
Qt directly linked to OpenSSL ........ yes
nmake && nmake install
QtCreator
qt自带的ide
Visual Studio
Qt Visual Studio Tools
自行在vs拓展内下载
设置 .ui 文件用QtCreator打开
如果双击.ui文件打开QtCreator再关闭后报错, 则需要重新设置一个打开方式
附几个命令
debug-dynamic-32
configure.bat -prefix "D:/debug-dynamic-32" -confirm-license -opensource -debug -ssl -openssl -ID:\openssl-debug-32\include -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
release-dynamic-32
configure.bat -prefix "D:\release-dynamic-32" -confirm-license -opensource -release -ssl -openssl -ID:\openssl-release-dynamic-32\include -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
release-static-64
configure.bat -prefix "D:\release-static-64" -confirm-license -opensource -static -release -ssl -openssl OPENSSL_LIBS="-lssleay32 -llibeay32 -lUser32 -lAdvapi32 -lGdi32" -openssl-linked -ID:\openssl-release-static-64\include -LD:\openssl-release-static-64\lib -platform win32-msvc -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp