簡體   English   中英

在VS上使用Qt庫

[英]Using Qt libraries on VS

我正在嘗試在VS上構建C ++項目。 該項目是在Linux計算機上使用NetBeans開發的,現在我在Windows上使用Visual Studio 2017。

它不是使用Qt Creatos開發的,因此已使用如下語句手動添加了庫:

#include <QtCore>
#include <QCoreApplication>
#include <QObject>
#include <QStringList>
#include <QMap>
...

這是我到目前為止所做的:

  • 下載了最新的Qt版本
  • 解壓C:\\ Qt中的所有內容
  • 在VS屬性> VC ++目錄>包含目錄中-我添加了C:\\ Qt \\ Qt5.9.2 \\ 5.9.2 \\ msvc2017_64 \\ include和C:\\ Qt \\ Qt5.9.2 \\ 5.9.2 \\ msvc2017_64 \\ include \\ QtCore
  • 在VS屬性> VC ++目錄>庫目錄中-我添加了C:\\ Qt \\ Qt5.9.2 \\ 5.9.2 \\ msvc2017_64 \\ lib

但是,當我嘗試#include <QtCore> ,VS似乎期望更多: https : //imgur.com/a/ruSbi

但不會編譯。

Severity    Code    Description Project File    Line    Suppression State
Error (active)  E0020   identifier "QEvent" is undefined        c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstractanimation.h 121 
Error (active)  E0020   identifier "QEvent" is undefined    c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstractstate.h 73  
Error (active)  E0020   identifier "QEvent" is undefined    c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstractstate.h 74  
Error (active)  E0020   identifier "QEvent" is undefined    c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstractstate.h 76  
Error (active)  E1455   member function declared with 'override' does not override a base class member      c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qabstracttransition.h    105 
Error (active)  E1455   member function declared with 'override' does not override a base class member  c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qanimationgroup.h    70  
Error (active)  E1455   member function declared with 'override' does not override a base class member  c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qcoreapplication.h   190 
Error (active)  E0020   identifier "qint8" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qdatastream.h    147 
Error (active)  E0020   identifier "qint8" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qdatastream.h    163 
Error (active)  E0260   explicit type is missing ('int' assumed)    c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qendian.h    236 
Error (active)  E0801   "qint8" is not a class or function template name in the current scope   c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qendian.h    236 
Error (active)  E0065   expected a ';'  c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qendian.h    236 
Error (active)  E0020   identifier "qint8" is undefined c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qendian.h    236 
Error (active)  E0020   identifier "QEvent" is undefined    c:\Qt\Qt5.9.2\5.9.2\msvc2017_64\include\QtCore\qeventloop.h 79  
Error (active)  E1455   member function declared with 'override' does not override a base class member
...     

所以,我想我缺少了一些東西。 我是VS的新手,所以我將不勝感激。

謝謝

QtCore既是目錄又是包含文件:

Directory: <Qt_Install_Path>/include/QtCore
File:      <Qt_Install_Path>/include/QtCore/QtCore

另外,您還需要在每個包含Q_OBJECT宏的標頭上運行Qt moc moc將生成額外的C ++文件,您需要對其進行編譯。 使用qmakecmake類的工具時,這非常簡單。 對於VS,您可能希望使用Qt Visual Studio加載項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM