🧩 全流程目标:
在 Visual Studio 中成功打开、编译并运行一个 Qt + OpenGL 项目(.vcxproj 格式)
✅ 第 1 步:安装必要环境
工具 | 说明 |
---|---|
Visual Studio 2017 / 2019 / 2022 | 必须勾选 “使用 C++ 的桌面开发” 和 “MSVC 工具集” |
Qt(对应 MSVC 版本) | 如 Qt 5.12.0 + MSVC2017_64 |
CMake(如果项目基于 CMake) | 可选,很多 .vcxproj 项目不需要 |
GLEW / GLFW / OpenGL | 可通过 vcpkg 或手动集成 |
✅ 推荐你安装:Qt 5.12.0 MSVC2017_64
Qt 安装路径一般为:E:\Qt\Qt5.12.0\5.12.0\msvc2017_64\
✅ 第 2 步:准备你的 .vcxproj
项目
你应该已经有这些文件之一:
-
SpongeBob.vcxproj
-
.h
,.cpp
,.ui
-
项目文件夹结构:
SpongeBob\
├── SpongeBob.vcxproj
├── myglwidget.cpp / .h
├── main.cpp
├── *.ui
├── shaders / images / textures(资源)
✅ 第 3 步:在 VS 中配置 Qt + OpenGL 环境
🔧 配置 Qt 的包含路径和库路径
✅ 包含目录(C++头文件)
E:\Qt\Qt5.12.0\5.12.0\msvc2017_64\include
E:\Qt\Qt5.12.0\5.12.0\msvc2017_64\include\QtWidgets
E:\Qt\Qt5.12.0\5.12.0\msvc2017_64\include\QtGui
E:\Qt\Qt5.12.0\5.12.0\msvc2017_64\include\QtCore
E:\Qt\Qt5.12.0\5.12.0\msvc2017_64\include\QtOpenGL
✅ 库目录(.lib文件)
E:\Qt\Qt5.12.0\5.12.0\msvc2017_64\lib
✅ 第 4 步:设置链接器依赖项
🧱 Debug 模式下添加这些 .lib
:
Qt5Cored.lib
Qt5Guid.lib
Qt5Widgetsd.lib
Qt5OpenGLd.lib
opengl32.lib
glu32.lib
glew32s.lib (或 glew32.lib)
glfw3_mt.lib (或 glfw3dll.lib)
🧱 平台插件需要:
确保你的运行目录有:
platforms/qwindowsd.dll
✅ 第 5 步:设置运行目录
在 VS 中设置:
配置属性 → 调试 → 工作目录
设置为:
$(OutDir)
或你的资源路径目录。
✅ 第 6 步:添加 Qt 的 MOC 和 UIC 支持(如果使用 .ui 或 Q_OBJECT)
如果你用了 Qt 的信号槽、Q_OBJECT
或 .ui
文件,需要让 VS 支持 Qt 的编译工具:
方法一:使用 Qt VS Tools 插件(官方)
安装后右键项目 → Qt Project Settings:
-
配置 Qt 安装路径
-
它会自动生成 MOC/UIC/资源文件
✅ 第 7 步:编译运行!
Debug 模式下运行:
-
会生成
SpongeBob.exe
在x64\Debug\
下 -
确保该目录下有 Qt 所需 DLL 和平台插件
✅ 第 8 步:部署运行环境(拷贝 DLL)
可使用
windeployqt
自动打包运行依赖:
E:\Qt\Qt5.12.0\5.12.0\msvc2017_64\bin\windeployqt.exe E:\SpongeBob\x64\Debug\SpongeBob.exe
✅ 参考文件结构(运行时):
x64\Debug\
├── SpongeBob.exe
├── Qt5Cored.dll
├── Qt5Guid.dll
├── Qt5Widgetsd.dll
├── Qt5OpenGLd.dll
├── glew32.dll(如果用动态库)
├── glfw3.dll(如果用动态库)
└── platforms\└── qwindowsd.dll
🎁 Bonus:自动部署 .bat
文件(可选)
@echo off
set QT_DIR=E:\Qt\Qt5.12.0\5.12.0\msvc2017_64REM 配置 VS 环境
call "D:\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"REM 运行 windeployqt
%QT_DIR%\bin\windeployqt.exe E:\SpongeBob\x64\Debug\SpongeBob.exepause
🧠 小结:跑通 .vcxproj
的关键点
项目 | 要点 |
---|---|
编译 | 包含目录 + 链接 .lib |
运行 | 拷贝 Qt DLL + GLEW/GLFW |
GUI | platforms/qwindows[d].dll 必须有 |
调试 | 启用符号(.pdb),避免混用 Debug/Release |
信号槽 | 使用 Qt VS Tools 或手动 MOC |