从 0 到跑通的 Qt + OpenGL + VS 项目的完整流程

发布于:2025-04-01 ⋅ 阅读:(18) ⋅ 点赞:(0)

🧩 全流程目标:

在 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.exex64\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_64

REM 配置 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.exe

pause

🧠 小结:跑通 .vcxproj 的关键点

项目 要点
编译 包含目录 + 链接 .lib
运行 拷贝 Qt DLL + GLEW/GLFW
GUI platforms/qwindows[d].dll 必须有
调试 启用符号(.pdb),避免混用 Debug/Release
信号槽 使用 Qt VS Tools 或手动 MOC