我试着在openSUSE下使用CMAKE编译我的项目来生成makefile。
现在,我得到了这个错误。有人能帮我吗?
[ 18%] Building CXX object VSProjects/PROJECT/CMakeFiles/PROJECT.dir/src/Activity/ActivityFactory.cpp.o
In file included from /home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:97:0,
from /home/martin/Qt/5.8/gcc_64/include/QtCore/qchar.h:43,
from /home/martin/Qt/5.8/gcc_64/include/QtCore/qstring.h:48,
from /home/martin/Qt/5.8/gcc_64/include/QtCore/QString:1,
from /home/martin/VSProjects/PROJECT/src/Activity/ActivityFactory.cpp:51:
/home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:357:1: error: expected constructor, destructor, or type conversion before ‘(’ token
Q_CORE_EXPORT const char *qVersion() Q_DECL_NOTHROW;
^
/home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:649:12: error: expected constructor, destructor, or type conversion before ‘(’ token
Q_NORETURN Q_CORE_EXPORT void qTerminate() Q_DECL_NOTHROW;
^
/home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:657:1: error: expected constructor, destructor, or type conversion before ‘(’ token
Q_CORE_EXPORT bool qSharedBuild() Q_DECL_NOTHROW;
^
/home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:697:1: error: expected constructor, destructor, or type conversion before ‘(’ token
Q_CORE_EXPORT QString qt_error_string(int errorCode = -1);
^
/home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:702:1: error: expected constructor, destructor, or type conversion before ‘(’ token
Q_CORE_EXPORT void qt_assert(const char *assertion, const char *file, int line) Q_DECL_NOTHROW;
^
/home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:719:1: error: expected constructor, destructor, or type conversion before ‘(’ token
Q_CORE_EXPORT void qt_assert_x(const char *where, const char *what, const char *file, int line) Q_DECL_NOTHROW;
^
/home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:750:1: error: expected constructor, destructor, or type conversion before ‘(’ token
Q_CORE_EXPORT void qt_check_pointer(const char *, int);
^
/home/martin/Qt/5.8/gcc_64/include/QtCore/qglobal.h:751:1: error: expected constructor, destructor, or type conversion before ‘(’ token
Q_CORE_EXPORT void qBadAlloc();
最佳答案
您正在调用这些函数:*qVersion();qTerminate();qt_error_string();等等。。
似乎没有在正确的位置调用它们(在“(”之前需要构造函数、析构函数或类型转换),必须在函数内部声明:
bool someclass()
{
qSharedBuild(); --bool type
return false;
}
关于linux - 在openSUSE下编译QtProject时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46069083/