QT5 Eclipse奇怪的语法错误

时间:2016-01-09 23:16:20

标签: c++ eclipse qt qt5

我正在使用Eclipse 4.5来实现QT5的一些GUI。 CMAKE用于编译我的项目。所以,Eclipse向我展示了一些错误,比如无效的参数

public synchronized void run() {
System.out.println("thread started");
    try {
        for (int i = 0; i < 10; i++) {
            m++;
            n++;
            Thread.sleep(100);
            System.out.println(m + ", " + n);
        }
    } catch (InterruptedException e) {
    }
    System.out.println("thread fininshed");
}

最有趣的是,我的项目编译没有任何错误或警告!

问题是功能QObject :: connect

Description Resource    Path    Location    Type
Invalid arguments '
Candidates are:
QMetaObject::Connection connect(const QtPrivate::FunctionPointer<#0>::Object *, #0, const QtPrivate::FunctionPointer<#1>::Object *, #1, enum Qt::ConnectionType)
QMetaObject::Connection connect(const QObject *, const char *, const QObject *, const char *, enum Qt::ConnectionType)
QMetaObject::Connection connect(const QObject *, const QMetaMethod &, const QObject *, const QMetaMethod &, enum Qt::ConnectionType)
QMetaObject::Connection connect(const QObject *, const char *, const char *, enum Qt::ConnectionType)
QtPrivate::QEnableIf<1 11 14 129 1 74 0 ArgumentCount 14 QtPrivate::FunctionPointer 1 #1 103 4225 0 74 01 11 14 129 1 74 0 ArgumentCount 14 QtPrivate::FunctionPointer 1 #1 103 4225 0 74 0,QMetaObject::Connection>::Type connect(const QtPrivate::FunctionPointer<#0>::Object *, #0, #1)
QtPrivate::QEnableIf<1 15 1 11 14 129 1 74 0 ArgumentCount 14 QtPrivate::FunctionPointer 1 #1 103 4225 0 74 0 15 7 74 0 IsPointerToMemberFunction 14 QtPrivate::FunctionPointer 1 #1 01 15 1 11 14 129 1 74 0 ArgumentCount 14 QtPrivate::FunctionPointer 1 #1 103 4225 0 74 0 15 7 74 0 IsPointerToMemberFunction 14 QtPrivate::FunctionPointer 1 #1 0,QMetaObject::Connection>::Type connect(const QtPrivate::FunctionPointer<#0>::Object *, #0, const QObject *, #1, enum Qt::ConnectionType)
QtPrivate::QEnableIf<1 28 74 0 ArgumentCount 14 QtPrivate::FunctionPointer 1 #1 15 3 103 4225 1 74 1 01 28 74 0 ArgumentCount 14 QtPrivate::FunctionPointer 1 #1 15 3 103 4225 1 74 1 0,QMetaObject::Connection>::Type connect(const QtPrivate::FunctionPointer<#0>::Object *, #0, #1)
QtPrivate::QEnableIf<1 28 74 0 ArgumentCount 14 QtPrivate::FunctionPointer 1 #1 15 3 103 4225 1 74 1 01 28 74 0 ArgumentCount 14 QtPrivate::FunctionPointer 1 #1 15 3 103 4225 1 74 1 0,QMetaObject::Connection>::Type connect(const QtPrivate::FunctionPointer<#0>::Object *, #0, const QObject *, #1, enum Qt::ConnectionType)
'   gui.cpp /PROJECT/src    line 161    Semantic Error

这个功能出了什么问题?

1 个答案:

答案 0 :(得分:0)

我如何做Linux + eclipse + Qt + CMake。

Qt的

  • 获取最新的eclipse,然后通过“帮助 - &gt;安装新软件”将Qt软件包安装到其中。

  • 在CMake项目源目录外创建一个空的“workspace”目录。

  • 启动eclipse并切换到“workspace”目录。

  • 创建C ++ - &gt; Makefile项目 - &gt; Qt Makefile项目。

  • 从中删除* .pro文件,makefile和main.cpp。

来源

  • 转到项目属性 - &gt;路径和符号 - &gt;来源位置 - &gt;链接文件夹。

  • 选中“高级”并链接CMake项目的源文件夹,如:../../myproject/。它的工作原理是工作区位于CMake项目目录之外。

CMake发电机

  • 在项目中创建Release文件夹。

  • 转到“制作目标”视图(Ctrl + 3,然后输入“Make Target”,如果很难找到)。 “Make Target”视图看起来就像项目视图一样。

  • 右键单击“Release”文件夹和“New ...”。

  • 取消选中“与目标名称相同”,取消选中“使用构建器设置”。

  • 在“目标名称”字段中键入“释放”,将“制作目标”留空,“构建命令”类似于“cmake ../../../myproject/”。点击确定。

  • 双击此“Release”制作刚刚在Release文件夹中创建的目标。它应该运行cmake。

构建

  • 转到项目属性,创建“发布”配置。

  • 激活“释放”配置。

  • 对于“发布”配置,取消选中“自动生成Makefile”。

  • 将Build目录设置为“Release”。

  • 启用并行构建。

它现在应该在“Release”目录中构建。如果没有,请从“Release”目录中删除all,然后像以前一样双击“Make Target”视图中的“Release”目标重新运行cmake。