從別的機器拷貝 VS2010 + Qt 項目,編譯報「找不到頭文件」(項目內自帶頭文件),解決方案管理器能見到文件,`#include` 不報紅,但編譯失敗。
Qt 項目依賴 `.pro` 文件生成 VS 項目文件 (`.vcxproj`),**絕對路徑、環境變量、Qt 版本** 機器相關。直接拷貝 `.vcxproj`/`filters` 失效。
qmake -tp vc PROJECT_NAME.pro
此命令會根據當前機器 Qt 安裝路徑、環境變量、`.pro` 配置,重新生成正確的 `.vcxproj`、`.vcxproj.filters`、`.sln`。
若仍報 UI 頭文件缺失(如 `ui_MainWindow.h`):
# 系統環境變量
QTDIR = C:\Qt\4.8.7 (或 5.x)
PATH += %QTDIR%\bin
# VS 項目屬性 → VC++ Directories → Include Directories
$(QTDIR)\include
$(QTDIR)\include\QtCore
$(QTDIR)\include\QtGui
...
| 錯誤操作 | 正確操作 |
|---|---|
| 直接拷貝 .vcxproj/.sln | 拷貝源碼 + .pro 文件,目標機跑 qmake |
| 手動改 Include 路徑 | 讓 qmake 根據 .pro 自動生成正確路徑 |
| 忽略 .user/.filters 文件 | 刪除舊 .user/.filters,qmake 重新生成 |
Qt + VS 遷移鐵律:**源碼 + .pro 走天下,qmake 一鍵生成原生項目**。不要試圖手動維護 VS 項目文件,`.pro` 才是唯一真實來源。