【问题标题】:Using Qt Creator and OpenCV to make a simple program使用 Qt Creator 和 OpenCV 制作一个简单的程序
【发布时间】:2015-04-16 12:22:36
【问题描述】:

这是Qt项目中的.pro文件:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = abc123
TEMPLATE = app

LIBS        += -L/usr/local/lib

INCLUDEPATH += /usr/local/include

SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

当我尝试编译这段代码时,Qt 给出了 19 个不同的错误(无论我在类本身中写了什么):

/Users/user0/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:44: error: variable has incomplete type 'class Q_WIDGETS_EXPORT'
class Q_WIDGETS_EXPORT QSizePolicy
                       ^
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:44: error: expected ';' after top level declarator
class Q_WIDGETS_EXPORT QSizePolicy
                                  ^
                                  ;
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:158: error: expected a class or namespace
Q_DECLARE_OPERATORS_FOR_FLAGS(QSizePolicy::ControlTypes)
                              ^
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:158: error: expected a class or namespace
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:158: error: expected a class or namespace
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:158: error: expected a class or namespace
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:158: error: expected a class or namespace
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:158: error: expected a class or namespace
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:158: error: expected a class or namespace
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:158: error: expected a class or namespace
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:162: error: variable has incomplete type 'Q_WIDGETS_EXPORT'
Q_WIDGETS_EXPORT QDataStream &operator<<(QDataStream &, const QSizePolicy &);
                 ^
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:162: error: expected ';' after top level declarator
Q_WIDGETS_EXPORT QDataStream &operator<<(QDataStream &, const QSizePolicy &);
                            ^
                            ;
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:163: error: redefinition of 'QDataStream'
Q_WIDGETS_EXPORT QDataStream &operator>>(QDataStream &, QSizePolicy &);
                 ^
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:163: error: expected ';' after top level declarator
Q_WIDGETS_EXPORT QDataStream &operator>>(QDataStream &, QSizePolicy &);
                            ^
                            ;
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:167: error: variable has incomplete type 'Q_WIDGETS_EXPORT'
Q_WIDGETS_EXPORT QDebug operator<<(QDebug dbg, const QSizePolicy &);
                 ^
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:167: error: expected ';' after top level declarator
Q_WIDGETS_EXPORT QDebug operator<<(QDebug dbg, const QSizePolicy &);
                       ^
                       ;
/Users/user05/Qt5.4.0/5.4/clang_64/lib/QtWidgets.framework/Headers/qsizepolicy.h:170: error: expected a class or namespace
inline void QSizePolicy::transpose() {
            ^
/usr/local/include/QtGui/qcursor.h:171: error: must use 'class' tag to refer to type 'QDataStream' in this scope
Q_GUI_EXPORT QDataStream &operator<<(QDataStream &outS, const QCursor &cursor);
             ^
             class
/usr/local/include/QtGui/qcursor.h:171: error: must use 'class' tag to refer to type 'QDataStream' in this scope
Q_GUI_EXPORT QDataStream &operator<<(QDataStream &outS, const QCursor &cursor);
                                     ^
                                     class

我使用的是 Qt 5.4.0 版本,我的操作系统是 OS X 10.9.4。您知道可能出了什么问题吗?

【问题讨论】:

  • 创建一个非 Qt 项目,如普通 C++ 应用程序。
  • @Md.MinhazulHaque 但我想使用 Qt 项目的功能,即我想在其中使用 GUI 表单创建器。
  • 与您当前的错误无关,但在 2015 年使用 opencv 的 c-api 是 no-no

标签: c++ qt opencv makefile qt-creator


【解决方案1】:

您忘记包含 MainWindow 类中的代码。也许这就是你的问题的原因。 你能单独编译你的main.cpp吗?

【讨论】:

  • 我试图包含它,但它没有解决问题。
  • 我的意思是你忘记在你的问题中向我们展示你的 MainWindow 类的代码。
  • 其次,能不能只编译main.cpp?
  • 是的,我只能编译 main.cpp。但是无论我在 main.cpp 和 mainwindow.cpp 中编写什么代码都会发生此错误(即使我将所有内容都保留为默认值,但在将 INCLUDEPATH 添加到 .pro 文件之后也会发生)。
  • 能否在QT中单独编译main.cpp?
猜你喜欢
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
  • 2012-08-20
  • 2011-09-08
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多