首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VS上使用Qt库

在VS上使用Qt库
EN

Stack Overflow用户
提问于 2017-11-16 08:28:24
回答 1查看 1.4K关注 0票数 1

我正试图在VS上构建一个C++项目。该项目是在Linux机器上使用NetBeans开发的,现在我在Windows上使用VisualStudio2017。

它不是使用sentences开发的,所以库是手动添加的,如下所示:

代码语言:javascript
复制
#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
  • 在VS属性> VC++目录>库目录-我添加了C:\Qt\Qt5.9.2\5.9.2\msvc2017_64\lib

然而,当我尝试#include <QtCore>时,VS似乎期望更多的东西:https://imgur.com/a/ruSbi

但它不编译。

代码语言:javascript
复制
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的新手,所以我很感激你的帮助。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-11-16 09:51:17

QtCore既是一个目录,也是一个包含文件:

代码语言:javascript
复制
Directory: <Qt_Install_Path>/include/QtCore
File:      <Qt_Install_Path>/include/QtCore/QtCore

此外,您还需要在每个包含Q_OBJECT宏的头上运行Qt Q_OBJECTmoc将生成额外的C++文件,您需要编译这些文件。当使用像qmakecmake这样的工具时,它是相当简单的。对于VS,您可以使用Qt Visual Studio外接程序

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47324863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档