對於一些已經解決的問題,本博客再也不討論。只將本人遇到的問題作簡單的說明。html
QT項目官網中,對於QT4,其只提供了windows X86的版本,而且支持VS2010及如下版本。windows
若是咱們的開發環境是VS2010以上版本,使用QT4.8.6-VS2010庫來進行開發的話,將會在編譯的時候提示缺乏msvcpxxx.dll等一系列缺乏dll文件的錯誤,即便咱們下載好了MS VC runtime。(以開發環境爲VS2013,並使用QT4.8.6-VS2010庫來進行開發爲例,將會在編譯的時候提示缺乏msvcp100.dll等一系列缺乏dll文件的錯誤,即便在咱們下載並安裝好Microsoft Visual C++ 2010 Redistributable Package(x64或x86或SP1 x64或 SP1 x86)以後,可能依然會有報缺乏msvcp100.dll等一系列dll的錯誤)。這時候,就須要對qt源碼進行編譯了。具體步驟與方法見連接:工具
這個連接所對用的博客中,做者修改了3個文件中共5處地方,有CSDN積分的下載patch文件照着做者的提示操做,沒有積分的,依照圖片找到這3個文件進行5處修改便可。ui
編譯完成以後,添加相應的環境變量,參考[QT] QT4環境變量配置,適合初學者。spa
在不少時候須要利用cmake工具來實現項目的跨平臺性,在使用的過程當中,本人遇到了這樣的問題:.net
CMake Error at D:/CMake/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message): Could NOT find Qt4 (missing: QT_MOC_EXECUTABLE QT_RCC_EXECUTABLE QT_UIC_EXECUTABLE) (found version "4.8.6")
也就是說cmake工具找到了qt,可是沒找到moc,uic和rcc。本人嘗試重啓計算機,並期待是由於新增的環境變量沒有生效致使的。但結果日然如此。3d
解決辦法以下:code
找到報錯對應的cmakelists.txt,並找到find_package(Qt4 REQUIRED )這條語句。htm
如本人遇到問題的文件內容以下:blog
1 ADD_SUBDIRECTORY(SfM) 2 ADD_SUBDIRECTORY(Localization) 3 #ADD_SUBDIRECTORY(opencv) 4 5 IF (OpenMVG_BUILD_OPENGL_EXAMPLES) 6 ADD_SUBDIRECTORY(SfMViewer) 7 ENDIF (OpenMVG_BUILD_OPENGL_EXAMPLES) 8 9 ADD_SUBDIRECTORY(colorHarmonize) 10 11 find_package(Qt4 REQUIRED ) 12 13 if (QT_FOUND) 14 ADD_SUBDIRECTORY(ui) 15 endif (QT_FOUND)
使用set命令手動指定moc,uic,rcc文件的路徑。修改後的文件內容以下:
1 ADD_SUBDIRECTORY(SfM) 2 ADD_SUBDIRECTORY(Localization) 3 #ADD_SUBDIRECTORY(opencv) 4 5 IF (OpenMVG_BUILD_OPENGL_EXAMPLES) 6 ADD_SUBDIRECTORY(SfMViewer) 7 ENDIF (OpenMVG_BUILD_OPENGL_EXAMPLES) 8 9 ADD_SUBDIRECTORY(colorHarmonize) 10 11 set(QT_MOC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.6\\bin\\moc.exe) 12 set(QT_RCC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.6\\bin\\RCC.exe) 13 set(QT_UIC_EXECUTABLE D:\\qt-everywhere-opensource-src-4.8.6\\bin\\Uic.exe) 14 15 find_package(Qt4 REQUIRED ) 16 17 if (QT_FOUND) 18 ADD_SUBDIRECTORY(ui) 19 endif (QT_FOUND)
至此,問題得以解決。