QT5 Eclipse奇怪的语法错误
QT5 Eclipse weird syntax error
我正在使用 Eclipse 4.5 来实现一些带有 QT5 的 GUI。 CMAKE 用于编译我的项目。因此,Eclipse 向我显示了一些错误,例如无效参数
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
最有趣的是我的项目编译时没有任何错误或警告!
问题出在函数QObject::connect
QNetworkReply* reply = manager->get(request);
connect(reply, &QNetworkReply::finished, this, &MyAPP::onRequestFinished);
这个函数有什么问题?
我怎么做 Linux + eclipse + Qt + CMake.
Qt
获取最新的eclipse然后通过"Help -> Install New Software".
在其中安装Qt包
在 CMake 项目源目录之外创建一个空 "workspace" 目录。
启动 eclipse 并切换到 "workspace" 目录。
创建 C++ -> Makefile 项目 -> Qt Makefile 项目。
从中删除*.pro文件、makefile和main.cpp。
来源
转到项目属性 -> 路径和符号 -> 源位置 -> Link 文件夹。
检查 "Advanced" 和 link CMake 项目的源文件夹,如下所示:../../myproject/
。它之所以有效,是因为工作区就在 CMake 项目目录之外。
CMake 生成器
在项目中创建Release
文件夹。
转到"Make Target"视图(Ctrl+3然后输入"Make Target"如果很难找到)。 "Make Target" 视图看起来就像项目视图。
右键单击 "Release" 文件夹和 "New..."。
取消选中 "Same as target name",取消选中 "Use builder settings"。
在"Target name"字段中输入"Release",将"Make target"留空,"Build command"类似于"cmake ../../../myproject/"。点击确定
双击刚刚在 Release 文件夹中创建的 "Release" make 目标。它应该 运行 cmake.
建造
转到项目属性,创建 "Release" 配置。
激活 "Release" 配置。
对于 "Release" 配置取消选中 "Generate Makefiles automatically"。
将构建目录设置为"Release"。
启用并行构建。
它现在应该在 "Release" 目录中构建。如果没有,请从 "Release" 目录中删除所有内容,然后像以前一样在 "Make Target" 视图中通过 double-clicking 在 "Release" 目标上重新 运行 cmake。
我正在使用 Eclipse 4.5 来实现一些带有 QT5 的 GUI。 CMAKE 用于编译我的项目。因此,Eclipse 向我显示了一些错误,例如无效参数
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
最有趣的是我的项目编译时没有任何错误或警告!
问题出在函数QObject::connect
QNetworkReply* reply = manager->get(request);
connect(reply, &QNetworkReply::finished, this, &MyAPP::onRequestFinished);
这个函数有什么问题?
我怎么做 Linux + eclipse + Qt + CMake.
Qt
获取最新的eclipse然后通过"Help -> Install New Software".
在其中安装Qt包
在 CMake 项目源目录之外创建一个空 "workspace" 目录。
启动 eclipse 并切换到 "workspace" 目录。
创建 C++ -> Makefile 项目 -> Qt Makefile 项目。
从中删除*.pro文件、makefile和main.cpp。
来源
转到项目属性 -> 路径和符号 -> 源位置 -> Link 文件夹。
检查 "Advanced" 和 link CMake 项目的源文件夹,如下所示:
../../myproject/
。它之所以有效,是因为工作区就在 CMake 项目目录之外。
CMake 生成器
在项目中创建
Release
文件夹。转到"Make Target"视图(Ctrl+3然后输入"Make Target"如果很难找到)。 "Make Target" 视图看起来就像项目视图。
右键单击 "Release" 文件夹和 "New..."。
取消选中 "Same as target name",取消选中 "Use builder settings"。
在"Target name"字段中输入"Release",将"Make target"留空,"Build command"类似于"cmake ../../../myproject/"。点击确定
双击刚刚在 Release 文件夹中创建的 "Release" make 目标。它应该 运行 cmake.
建造
转到项目属性,创建 "Release" 配置。
激活 "Release" 配置。
对于 "Release" 配置取消选中 "Generate Makefiles automatically"。
将构建目录设置为"Release"。
启用并行构建。
它现在应该在 "Release" 目录中构建。如果没有,请从 "Release" 目录中删除所有内容,然后像以前一样在 "Make Target" 视图中通过 double-clicking 在 "Release" 目标上重新 运行 cmake。