VS2019 配置 Qt 库
如标题所说,在 VS 编译器中调用 Qt 库
首先安装一个适合 VS 的 Qt 版本

不知道怎么安装的,可以参考:Visual Studio+Qt配置开发环境
Qt 安装之后,需要在 VS 编译器中安装 Qt VS Tools 拓展,以便在 vs 中新建 C++/Qt 项目
不知道如何安装的,可以参考:Qt:03---Visual Studio安装Qt与使用

点击 Qt Versions 选项 add new Qt versions,可以按照下图来设置

我有两个 Qt 版本,这边可以任选一个,当然也只允许选一个
配置完 Qt 拓展之后,就可以新建一个项目了,比如 Qt Empty Application 或者 Qt Widgets Application 或者 Qt Console Application,根据自己的需求来建

接着在 vs 编译器中设置 Qt 的头文件目录和库目录,比如



输入这些路径时,需要设置 QtDir 宏,我们可以直接在 VS 项目中的 .vcxproj.user 文件中手动输入配置就行(有时不需要,可以观察设置 QtDir 是否被编译器解释),比如

没有被正确解释的话就可以手动修改 .vcxproj.user 文件了
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ShowAllFiles>false</ShowAllFiles>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<QTDIR>D:\Qt\5.15.0\msvc2019_x86_static</QTDIR>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<QmlDebugSettings>file:$(ProjectGuid),block</QmlDebugSettings>
<QmlDebug>-qmljsdebugger=$(QmlDebugSettings)</QmlDebug>
<LocalDebuggerCommandArguments>$(QmlDebug)</LocalDebuggerCommandArguments>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH) $(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugWin|Win32'">
<QTDIR>D:\Qt\5.15.0\msvc2019_x86_static</QTDIR>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<QmlDebugSettings>file:$(ProjectGuid),block</QmlDebugSettings>
<QmlDebug>-qmljsdebugger=$(QmlDebugSettings)</QmlDebug>
<LocalDebuggerCommandArguments>$(QmlDebug)</LocalDebuggerCommandArguments>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH) $(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDll|Win32'">
<QTDIR>D:\Qt\5.15.0\msvc2019_x86_static</QTDIR>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<QmlDebugSettings>file:$(ProjectGuid),block</QmlDebugSettings>
<QmlDebug>-qmljsdebugger=$(QmlDebugSettings)</QmlDebug>
<LocalDebuggerCommandArguments>$(QmlDebug)</LocalDebuggerCommandArguments>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH) $(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<QTDIR>D:\Qt\5.15.0\msvc2019_x86_static</QTDIR>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH) $(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDll|Win32'">
<QTDIR>D:\Qt\5.15.0\msvc2019_x86_static</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
</Project>
笔记:
1. 今天查看 Qt VS Tools 时,发现该选项后面提示 qt visual studio tools version 2.9.1 initializing(rev.6),查看相关文章发现要更新 vs 编译器(我的是 vs2019),更新完后要重启电脑,
之后重新打开 VS 项目(里面包含 Qt 界面库的调用),编译后报错,提示 error MSB4184: 无法计算表达式“[System.IO.File]... qt.natvis.xml not found,这个错误之前是没有的,研究后发现是编译器没有找到该文件,
解决方法是,复制一个已有的 qt5.natvis.xml 文件,并重名为 qt.natvis.xml,重新编译,没有错误

2. 另外编译时会出现 error LNK2038: 检测到 “RuntimeLibrary” 的不匹配项的错误,这边的解决方法是将 多线程调试Dll (/MDd) 改为 多线程调试(/MTd)
有些情况是反过来,可以都试一下

3. 编辑环境变量应该是需要的,可以根据需要来设置

设置完之后可以重启电脑或者 cmd 输入 set PATH=C; 来激活,并另外打开 cmd 输入 echo %PATH% 检查是否生效
一些细节可以参考:
补充:
Qt 的一些库需要依赖 win32 的库,所以在静态绑定库时,不仅要包括 Qt 库,还需要 win32 库,下面列举一些常用的库
#pragma comment(lib, "Dwmapi.lib")
#pragma comment(lib, "Winspool.lib")
#pragma comment(lib, "Imm32.lib")
#pragma comment(lib, "oleaut32.lib")
#pragma comment(lib, "shlwapi.lib")
#pragma comment(lib, "rpcrt4.lib")
#pragma comment(lib, "gdi32.lib")
#pragma comment(lib, "comdlg32.lib")
#pragma comment(lib, "winmm.lib")
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "wldap32.lib")
#pragma comment(lib, "ole32.lib")
#pragma comment(lib, "uuid.lib")
#pragma comment(lib, "advapi32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "mpr.lib")
#pragma comment(lib, "version.lib")
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "shell32.lib")
#pragma comment(lib, "uxtheme.lib")
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "crypt32.lib")
#pragma comment(lib, "strmiids.lib")
#pragma comment(lib, "dnsapi.lib")
#pragma comment(lib, "iphlpapi.lib")
#pragma comment(lib, "D3d9.lib")
#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "userenv.lib")
#pragma comment(lib, "netapi32.lib")
#pragma comment(lib, "wtsapi32.lib")
#pragma comment(lib, "dwrite.lib")
#pragma comment(lib, "d2d1.lib") // qwidget.h 支持
#ifdef _DEBUG
#pragma comment(lib, "Qt5Widgetsd.lib")
#else
#pragma comment(lib, "Qt5Widgets.lib")
#endif // _DEBUG // 平台插件支持
#ifdef _DEBUG
#pragma comment(lib, "qwindowsd.lib")
#pragma comment(lib, "Qt5EventDispatcherSupportd.lib")
#pragma comment(lib, "Qt5FontDatabaseSupportd.lib")
#pragma comment(lib, "qtfreetyped.lib")
#pragma comment(lib, "Qt5ThemeSupportd.lib")
#pragma comment(lib, "Qt5AccessibilitySupportd.lib")
#pragma comment(lib, "Qt5WindowsUIAutomationSupportd.lib")
#pragma comment(lib, "Qt5Guid.lib")
#pragma comment(lib, "qtlibjpegd.lib")
#pragma comment(lib, "qtlibpngd.lib")
#pragma comment(lib, "qtharfbuzzd.lib")
#pragma comment(lib, "Qt5Cored.lib")
#pragma comment(lib, "qtpcre2d.lib")
#pragma comment(lib, "libEGLd.lib")
#pragma comment(lib, "libGLESv2d.lib")
#else
#pragma comment(lib, "qwindows.lib")
#pragma comment(lib, "Qt5EventDispatcherSupport.lib")
#pragma comment(lib, "Qt5FontDatabaseSupport.lib")
#pragma comment(lib, "qtfreetype.lib")
#pragma comment(lib, "Qt5ThemeSupport.lib")
#pragma comment(lib, "Qt5AccessibilitySupport.lib")
#pragma comment(lib, "Qt5WindowsUIAutomationSupport.lib")
#pragma comment(lib, "Qt5Gui.lib")
#pragma comment(lib, "qtlibjpeg.lib")
#pragma comment(lib, "qtlibpng.lib")
#pragma comment(lib, "qtharfbuzz.lib")
#pragma comment(lib, "Qt5Core.lib")
#pragma comment(lib, "qtpcre2.lib")
#pragma comment(lib, "libEGL.lib")
#pragma comment(lib, "libGLESv2.lib")
#endif // _DEBUG // 图片插件支持
#ifdef _DEBUG
#pragma comment(lib, "qgifd.lib")
#pragma comment(lib, "qicnsd.lib")
#pragma comment(lib, "qicod.lib")
#pragma comment(lib, "qjpegd.lib")
#pragma comment(lib, "qsvgd.lib")
#pragma comment(lib, "Qt5Svgd.lib") // QSvgPlugin 支持
#pragma comment(lib, "qtgad.lib")
#pragma comment(lib, "qtiffd.lib")
#pragma comment(lib, "qwbmpd.lib")
#pragma comment(lib, "qwebpd.lib")
#else
#pragma comment(lib, "qgif.lib")
#pragma comment(lib, "qicns.lib")
#pragma comment(lib, "qico.lib")
#pragma comment(lib, "qjpeg.lib")
#pragma comment(lib, "qsvg.lib")
#pragma comment(lib, "Qt5Svg.lib") // QSvgPlugin 支持
#pragma comment(lib, "qtga.lib")
#pragma comment(lib, "qtiff.lib")
#pragma comment(lib, "qwbmp.lib")
#pragma comment(lib, "qwebp.lib")
#endif // _DEBUG // 音频插件支持
#ifdef _DEBUG
#pragma comment(lib, "qtaudio_windowsd.lib")
#pragma comment(lib, "Qt5Multimediad.lib")
#else
#pragma comment(lib, "qtaudio_windows.lib")
#pragma comment(lib, "Qt5Multimedia.lib")
#endif // _DEBUG // 窗体主题
#ifdef _DEBUG
#pragma comment(lib, "qwindowsvistastyled.lib")
#else
#pragma comment(lib, "qwindowsvistastyle.lib")
#endif // _DEBUG
VS2019 配置 Qt 库的更多相关文章
- Qt在Mac OS X下的编程环境搭建(配置Qt库和编译器,有图,很清楚)
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/46234079 在Mac OS X下使用Qt开发,需要 ...
- win10环境下VS2019配置NTL库
win10环境下VS2019配置NTL库 1.下载 WINNTL库文件 https://www.shoup.net/ntl/download.html 2.创建静态库 文件->新建-&g ...
- vs2019配置boost库(转载)
网址:https://blog.csdn.net/qq_42214953/article/details/105087015 关于途中的执行文件,可以使用b2.exe,不用跟着教程走. 如果本来就有b ...
- VS 2010配置Qt 4.8.5
由于早上偶然的一个念想,今天的宝贵时光就奉献给了Qt的安装及其和VS 2010的配置上了. 说实话,开始时真的查找了资料,包括博客.文库.知道等等,作者们写得都很全面,细致. 但自己动手尝试就是错误百 ...
- linux下配置QT(很全的步骤,从下载开始,配置QMAKESPEC)
一.下载Qt源码包到本机,然后解压缩#tar zxvf qt-x11-opensource-src-4.3.2.tar.gz -C /usr/local //将qt-x11-opensource-sr ...
- Qt库的静态编译
一.准备软件1. MinGW (C:\Qt\MinGW)http://pan.baidu.com/share/link?shareid=174269&uk=673227135这个文件解 ...
- Linux 下编译、安装、配置 QT
转自Linux 下编译.安装.配置 QT 注意:编译安装耗时费力,且很容易出错,要不断调整编译参数,不推荐使用,否则这将会是一个纠结痛苦的过程. 打算做嵌入式图像处理,计划方案嵌入式Linux+Ope ...
- Linux下配置QT环境
一.下载Qt源码包到本机,然后解压缩 #tar zxvf qt-x11-opensource-src-4.3.2.tar.gz -C /usr/local //将qt-x11-opensource-s ...
- 1.新手上路:Windows下,配置Qt环境
个人体会: 我最初只是想看看C++除了"黑窗口"之外,怎么才能做一些"更好看的东西".之后在网上看到有人推荐Qt,就看了一下官网(https://www.qt. ...
- 支持源码单步调试QT库编译笔记
支持源码单步调试QT库编译笔记 编译环境:windows 10 编译工具:mingw_4_4_0 Qt源码版本:qt-everywhere-opensource-src-4.8.5(下载地址:http ...
随机推荐
- PG数据库的离线rpm包下载
PG数据库的离线rpm包下载 背景 周末时间研究数据库的版本. 发现PostgreSQL数据库的版本号已经变成了一年一个大版本. 兼容起来其实成本很高. 想着能够在能够上网的机器上面弄好多套数据库. ...
- [转帖]docker 镜像分层原理及容器写时复制
https://xie.infoq.cn/article/19c98e8b15ff9f610a2ee26bd 一.镜像分层与容器层 在进行docker pull 下载镜像的时候,通过下图可以看到镜像是 ...
- [转帖]设置LD_LIBRARY_PATH不起作用(失效)
部分Linux系统设置LD_LIBRARY_PATH变量,并不能生效,此时需要将变量值写入/etc/ld.so.conf文件中,如下所示: include ld.so.conf.d/*.conf in ...
- 【转帖】JVM的发展历程
目录 1.Sun Classic VM 2.Exact VM 3.Sun HotSpot(主流) 4.JRockit 5.IBM J9 6.下一代虚拟机Graal VM 1.Sun Classic V ...
- 日常测试进行beans比较的简单方法
日常测试进行beans比较的简单方法 摘要 想每天把有变化的bean抓取出来有新增的beans时能够及时进行分析和介入 保证beans 都是符合规范的. 方式和方法 开启actuator 打开bean ...
- HTTPS下tomcat与nginx的前端性能比较
HTTPS下tomcat与nginx的前端性能比较 摘要 之前比较http的web服务器的性能. 发现nginx 比 tomcat 要好 50% 然后想到, https的情况下不知道两者有什么区别 所 ...
- [转帖]Java 平台调试体系
https://www.cnblogs.com/xiaojiesir/p/15652619.html Java 平台调试体系(Java Platform Debugger Architecture,J ...
- zabbix基于容器化在UOS1050E上面的安装与使用
前言 想着能够监控一下操作系统的日志. 因为国产化的需求, 所以我这边使用了UOS1050E 安装zabbix时多次提示缺少php-json 或者是缺少一些libevent等组件. 自己尝试进行解决发 ...
- k8s 中的网络
k8s 中的网络模型 CNI 网络插件 CNI 的设计思想 k8s 中的三层网络 Flannel 的 host-gw Calico 参考 k8s 中的网络模型 CNI 网络插件 docker 容器的网 ...
- el-select添加全部选项
/**给返回的搜索条件插入全部**/ global.addAll = function (list) { let addAllList = list addAllList.unshift({label ...