🧩 全流程目標:
在 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 |