在 VS2015 中使用 Qt4

轉載自個人博客:在 VS2015 中使用 Qt4html


Qt4 對 Visual Studio 的支持止於 VS20101,也就是說你想要在 VS2015 使用 qt4,只能本身編譯。而本身編譯也是極其麻煩的,許多地方須要考慮 VS2015 所使用的編譯器支持的標準,要處理許多代碼的衝突。因此網上根本找不到 VS2015 + qt4 的解決方案。git

但我很喜歡 VS2015,不要錢的 Community 版本十分好使(不再用盜版 VS20十、番茄助手了)!它自帶的代碼提示、補全很完善很贊。並且終於有了我之前吐槽過的 VS 沒有的【切換頭文件/源文件的功能】,見 愚蠢的 Visual Stuio2並且我如今也沒時間把原來的代碼遷移到 qt5(我也不知道這工做量有多大)。因此我想,要是能在 VS2015 裏使用 qt4,那該多好啊。github

因而我搜到了 sandym/qt-patches: Patches to some release versioin of Qt I use,這人提供了 qt4 的補丁(patch),這樣就能用 VS2015 編譯 qt4 源碼,生成必要的 *.lib*.dll 文件了。post

這樣,我編譯了 VS2015 能用的 qt4。ui

跑起來

這是一個精簡了的 vs2015 能用的 qt4 打包:http://whudoc.qiniudn.com/2016/vs2015-qt4-playground.zip。雖然只有 14 MB,使用它你能夠編譯運行大多數 qt4 工程代碼。spa

這個打包裏還包含一個 qt 樣例程序,很容易運行起來。debug

使用方法以下:code

  1. 解壓 vs2015-qt4-playground.ziphtm

  2. 解壓裏面的 qt4-vs2015x64.7z圖片

  3. 把裏面的 qt4-vs2015x64\bin 目錄的完整路徑拷貝,粘貼到系統變量 PATH 的前面;

  4. 用 cmake 編譯 vs2015 工程(選擇 Visual Studio 14 VS2015 WIN64);

  5. 用 vs2015 打開工程,編譯 release 版本程序,而後運行。

爲了讓這個 build 很小,我去掉了 debug 的部分,因此只能編譯 release。並且有些模塊被我去掉了。(好比 qt-libjpeg,因此連 jpeg 格式的圖片都沒法加載。)

獲取一個更完整的 build

我還編譯了其它幾個不一樣的 qt4 vs2015x64 build。好比這個:qt-4.8.7-vs2015-build1.7z,壓縮包 108 MB,解壓後 951 MB。跟上面的配置方法同樣。

編譯本身的 build

或許你想要更完整的支持,或許你想要更小的發行版。總之你想本身編譯,能夠參考個人 district10/qt4-vs2015x64: Qt4 & Visual Studio 2015 (vc14).。裏面有源碼下載,以及 build 的步驟。

題外話

Qt5 有官方的 VS2015 的二進制發行,使用起來也很簡單。Qt5 和 CMake 一塊兒使用也很容易,只要在 CMakeLists.txt 里加上搜索路徑便可,好比「C:/Qt/VS2015x64/Qt5.6.0/5.6/msvc2015_64」,具體能夠看個人qt5-project
Qt4 和 Qt5 也不會衝突。

qt4 + vs2015,代碼:a href=

qt5 + vs2015,代碼:a href=


  1. Qt 官方的 release 裏,只有對 vs2008 和 vs2010 的支持。Qt4 最後一個 release 是 qt-4.8.7,那時候 vs2015 還沒出來吧。
  2. 並且,怎麼說呢,VS 本來沒有這個功能是能夠理解的。由於頭文件的聲明和 cpp 的實現原本就能夠是隨意的。以我 camke-templates 裏的functions.h 爲例,它的實現就分佈在 cubic.c、square.c、power4.c、power5.c。這樣的狀況下,Qt creator 那個【切換頭文件/源文件(F4)】實際上是不嚴謹的。而 VS 的【Go to Definition(F12)】則很「正確」。如今 VS2015 有了【Toggle Header / Code File(Ctrl+K,Ctrl+O)】,這個表達是極爲嚴謹且精準的。(我覺得 VS2015 真的能夠「智能」地跳轉,結果發現竟然這功能竟然沒反應。不知道是否是本身的電腦太慢,或者是設置得不對。就我這樣?)
相關文章
相關標籤/搜索