天天看點

VS2015 + QT5.9編譯報錯,error: 不包含“ToHashSet”的定義

VS2015 + QT5.9.0(msvc2015_64) 建立qt項目,編譯報錯:

VS2015 + QT5.9編譯報錯,error: 不包含“ToHashSet”的定義

報錯原因:

ToHashSet 從 .NET 4.7.2 以上版本才支援,之前版本沒有。

檢視自己vs上的Microsoft .NET Framework版本:“幫助”->“關于Microsoft Visual Studio(A)”,顯示下面的資訊:

發現自己的是4.6的版本(下面的4.8是我更新後的版本)

VS2015 + QT5.9編譯報錯,error: 不包含“ToHashSet”的定義

點選下載下傳Microsoft .NET Framework4.8

注意:

             這個問題太坑了;最後是更新.NET Framework解決了。前面還做了許多其他的嘗試,由于時間的關系沒有驗證是否同樣為編譯不通過的原因。以下簡單記錄,便于日後查找:

1. QT VS Tools 版本不對

    網上有的朋友給出解決方案,不要使用vs聯網下載下傳的qt工具;去qt官網下載下傳釋出版本                   (http://download.qt.io/official_releases/vsaddin/)

2. 編譯同時還報頭檔案無法查找到的錯,後面證明這個不是根本原因;

    因為,當安裝了QT VS Tools之後,隻需要進行兩項設定,程式就可以查找到QT所有的頭檔案

   設定如下:

  1.    選擇:Qt VS Tools -> Qt Options,點選“Add”按鈕,Path 選擇 D:\Qt\Qt5.9.0\5.9\msvc2015,然後點選“Ok”進行儲存      
    VS2015 + QT5.9編譯報錯,error: 不包含“ToHashSet”的定義
  2. 右鍵點選解決方案=》 Change Solution's QT Version 選擇 對應目前工程msvc版本
VS2015 + QT5.9編譯報錯,error: 不包含“ToHashSet”的定義

設定好之後,有時候程式反應沒有那麼快,頭檔案仍然提示找不到;可以嘗試直接編譯或者切換一下 Solution's QT Version