Visual studio + Qt 项目配置管理
1.本机顺利安装 vs 和 Qt 软件
并且设置好Qt 的环境变量比如
E:\Qt\Qt5.9.8\5.9.8\msvc2017_64\bin
E:\Qt\Qt5.9.8\5.9.8\msvc2017_64\lib
E:\Qt\Qt5.9.8\5.9.8\msvc2017_64\include
//这里是你电脑上Qt的路径,每台电脑不一样
2.vs 要安装扩展
安装完之后,关闭vs 电脑会自动安装插件。

3.创建一个Qt项目测试一下


Qt项目就配置成功了。
3.调试动态库
创建了一个 动态库项目,但是visual studio中我无法直接调试动态库项目,可以新建一个 测试 EXE 项目 来调用 databaseSDKLib.dll
,然后在 databaseSDKLib
里设置断点进行调试。
1. 创建测试项目
- 在 Visual Studio 里创建一个新的控制台项目 (Console App) :
文件 (File) → 新建 (New) → 项目 (Project)
- 选择 C++ 控制台应用 (Console App)
- 命名为
TestApp
- 让 EXE 依赖创建的的 DLL:
- 右键
TestApp
,选择添加 (Add) → 现有项 (Existing Item)
- 添加
databaseSDKLib.h
(DLL 的头文件) - 在
TestApp
的源文件 (Source Files)
里添加main.cpp
并调用你的 DLL:
- 右键
3.配置 TestApp
依赖 databaseSDKLib
-
右键
TestApp
,选择属性 (Properties)
-
在 "VC++ 目录" → "包含目录 (Include Directories)" 里添加
databaseSDKLib
的头文件路径 -
在 "VC++ 目录" → "库目录 (Library Directories)" 里添加
databaseSDKLib.lib
的路径 -
在 "链接器 (Linker) → 输入 (Input)"里,在附加依赖项 (Additional Dependencies)
添加:
databaseSDKLib.lib
4.设置 databaseSDKLib.dll
的运行路径
-
右键
TestApp
,选择 "属性 (Properties)" -
在 "调试 (Debugging)" → "环境 (Environment)" 添加:
PATH=D:\your_dll_folder;%PATH%
这样,运行时就能找到
databaseSDKLib.dll
5.运行 TestApp
并调试
- 设置
databaseSDKLib
断点 - 右键
TestApp
,点击 "设为启动项目 (Set as Startup Project)" - F5 运行调试 ,如果
TestApp
调用了 DLL,VS 就会跳转到databaseSDKLib
的代码里。
添加引用

✅ 如果 动态库依赖其他第三方库, TestApp
也需要添加这些库的依赖。
✅ 需要在 TestApp
中配置头文件目录、库文件目录和 DLL 的路径,
✅ 确保在调试时,所有依赖都被正确加载。
4.releas模式下也可以进行断点调试。
5.Visual Studio 配置 C++ 项目,需要设置多个关键参数
1. C/C++ 预处理和编译相关配置
(1)附加包含目录 (Include Directories)
-
路径设置 :
项目属性 → C/C++ → 常规 → 附加包含目录
-
作用 :告诉编译器在哪里寻找头文件 (
.h
/.hpp
)。 -
示例:
D:\Boost\include
-
用途:
- 当你的项目依赖于外部库(如 Qt、Boost)时,需要指定这些库的头文件路径。
- 例如,代码
#include <QtCore/QObject>
,编译器会去D:\Qt\5.15.2\msvc2019_64\include
目录下寻找QObject
头文件。
2. 链接器(Linker)相关配置
(2)库目录 (Library Directories)
-
路径设置 :
项目属性 → 链接器 → 常规 → 附加库目录
-
作用 :告诉链接器 (
link.exe
) 在哪里寻找.lib
静态库或动态库的导入库。 -
示例:
plaintext复制编辑D:\Qt\5.15.2\msvc2019_64\lib D:\Boost\lib
-
用途:编译
.cpp
文件时只需要头文件,但链接时需要.lib
文件,所以必须指定库所在路径。
(3)附加依赖项 (Additional Dependencies)
-
路径设置 :
项目属性 → 链接器 → 输入 → 附加依赖项
-
作用 :指定需要链接的
.lib
文件(编译时链接)。 -
示例
:
plaintext复制编辑Qt5Core.lib Qt5Widgets.lib Boost_system.lib
-
用途:
- 当你使用
databaseSDKLib
这样的库时,最终的应用程序需要链接databaseSDKLib.lib
,否则无法解析库中的函数。
- 当你使用
3. 运行时配置
(5)环境变量 (Environment)
-
路径设置 :
项目属性 → 调试 → 环境
-
作用 :运行时加载
.dll
文件(动态库)。 -
示例:
PATH=D:\Qt\5.15.2\msvc2019_64\bin;%PATH%
-
用途:
- 如果
TestApp.exe
运行时找不到Qt5Core.dll
,就需要将 Qt 运行库的bin
目录添加到PATH
变量。
- 如果
4. 代码生成和优化
-
路径设置 :
项目属性 → C/C++ → 代码生成 → 运行时库
-
选项:
选项 说明 /MD
使用多线程动态库( msvcrt.dll
),适用于动态链接/MT
使用多线程静态库( libcmt.lib
),适用于静态链接/MDd
/MD
的调试版本/MTd
/MT
的调试版本 -
用途:
- 如果你用
/MD
编译databaseSDKLib
,那么TestApp
也必须用/MD
,否则可能会有符号冲突。
- 如果你用
5. 预处理器宏
(7)预处理器定义 (Preprocessor Definitions)
-
路径设置 :
项目属性 → C/C++ → 预处理器 → 预处理器定义
-
作用:定义宏,用于控制编译行为。
-
示例
_CRT_SECURE_NO_WARNINGS; WIN32; QT_CORE_LIB
-
用途
_CRT_SECURE_NO_WARNINGS
让 MSVC 忽略scanf()
之类的安全警告。WIN32
表示 Windows 平台,QT_CORE_LIB
表示 Qt Core 模块。
6. 编译器优化
(8)优化选项 (Optimization)
-
路径设置 :
项目属性 → C/C++ → 优化
-
选项
选项 说明 /O1
最小化代码大小 /O2
最大化运行速度 /Od
禁用优化(适用于调试) /Oy
省略帧指针(仅适用于 Release)
7. 其他重要配置
(9)输出目录 (Output Directory)
-
路径设置 :
项目属性 → 常规 → 输出目录
-
作用 :指定编译生成的
.exe
或.dll
放在哪里。 -
示例
$(SolutionDir)bin\$(Configuration)\
-
用途让 Debug 和 Release 版本分开放,避免混淆。
(10)中间目录 (Intermediate Directory)
-
路径设置 :
项目属性 → 常规 → 中间目录
-
作用 :存放编译过程中产生的
.obj
文件。 -
示例
$(SolutionDir)build\$(Configuration)\
-
用途避免不同配置的
.obj
文件相互覆盖。
配置项 | 作用 |
---|---|
附加包含目录 | 指定头文件搜索路径 |
库目录 | 指定 .lib 文件搜索路径 |
附加依赖项 | 指定需要链接的 .lib 文件 |
运行时库 | 选择 /MD (动态库)或 /MT (静态库) |
环境变量 | 让程序能找到 .dll |
预处理器定义 | 控制编译行为,如 _CRT_SECURE_NO_WARNINGS |
输出目录 | 指定 .exe 和 .dll 存放路径 |
中间目录 | 指定 .obj 临时文件存放路径 |