我试图将项目从 Qt4 转换为 Qt5。到目前为止,stackoverflow 搜索和谷歌帮助了我,但现在我被困住了。
我已经重写了 cmake 文件,并且所有包含到新 Qt 标头的内容都已放置。还应正确添加库。在我的 eclipse 项目中,所有标题都找到了,但对于某些对象,eclipse 用红色下划线并带有以下注释:
符号XXX
无法解析
XXX
例如:
QMainWindow
QWidget
QGroupBox
其他对象,如QPushButton
,QLineEdit
没有下划线。
老实说,在从 Qt4 切换到 Qt5 的过程中,我从 Win/VS10 切换到了 Linux/Eclipse。
所以任何人都可以给我一个提示?
真的很感激。谢谢
编辑:我如何在 cmake 中添加 Qt:
find_package(Qt5Widgets)
if (Qt5Widgets_FOUND)
message(STATUS "Qt5Widgets found.")
else (Qt5Widgets_FOUND)
message(STATUS "Qt5Widgets not found!")
endif (Qt5Widgets_FOUND)
find_package(Qt5OpenGL)
if (Qt5OpenGL_FOUND)
message(STATUS "QtOpenGl found.")
else (Qt5OpenGL_FOUND)
message(STATUS "QtOpenGL not found!")
endif (Qt5OpenGL_FOUND)
...
include_directories( ${Qt5Widgets_INCLUDES} ${Qt5OpenGL_INCLUDES})
add_executable(exp_test_qtTemplate ${files} )
target_link_libraries( exp_test_qtTemplate ${OPENGL_LIBRARIES} ${Boost_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5OpenGL_LIBRARIES})
这在 qt 生成的 moc 文件中有点奇怪
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'GlViewer.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.0.1. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
看起来像 Qt 安装失败。