C++ 如何在没有QtCreator的情况下编译qt5项目?

C++ 如何在没有QtCreator的情况下编译qt5项目?,c++,eclipse,cmake,qt5,kdevelop,C++,Eclipse,Cmake,Qt5,Kdevelop,我试图修改kdevelopqt4cmake项目,用qt5编译它,并更改了项目,但失败了。 我还在学习Qt,这个项目很简单。 注释行被替换,使其成为Qt5项目 main.cpp: //#include <QtGui/QApplication> #include <qt5/QtWidgets/QApplication> #include "Qt4_Training.h" int main(int argc, char** argv) { QApplication a

我试图修改kdevelopqt4cmake项目,用qt5编译它,并更改了项目,但失败了。 我还在学习Qt,这个项目很简单。 注释行被替换,使其成为Qt5项目

main.cpp:

//#include <QtGui/QApplication>
#include <qt5/QtWidgets/QApplication>
#include "Qt4_Training.h"

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    Qt4_Training qt4_training;
    qt4_training.show();
    return app.exec();
}
我还尝试使用Eclipse,还使用了“#include”,但所有对象名称都必须以“Private”结尾,比如“QLabelPrivate…”

KDevelop错误:

...
CMakeFiles/qt4_training.dir/main.cpp.o: In function `main':
main.cpp:(.text.startup+0x37): undefined reference to `QApplication::QApplication(int&, char**, int)'
main.cpp:(.text.startup+0x47): undefined reference to `QWidget::show()'
main.cpp:(.text.startup+0x4c): undefined reference to `QApplication::exec()'
main.cpp:(.text.startup+0x5f): undefined reference to `QApplication::~QApplication()'
main.cpp:(.text.startup+0x96): undefined reference to `QApplication::~QApplication()'
collect2: error: ld returned 1 exit status
CMakeFiles/qt4_training.dir/build.make:110: recipe for target 'qt4_training' failed
make[2]: *** [qt4_training] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/qt4_training.dir/all' failed
make[1]: *** [CMakeFiles/qt4_training.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2
*** Failure: Exit code 2 ***
Eclipse错误:

In file included from ../src/Qt 5 Training.cpp:1:0:
/usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:37:37: fatal error: QtCore/qcoreapplication.h: No such file or directory
 #include <QtCore/qcoreapplication.h>
                                     ^
compilation terminated.
src/subdir.mk:21: recipe for target 'src/Qt 5 Training.o' failed
make: *** [src/Qt 5 Training.o] Error 1
包含在../src/Qt 5 Training.cpp:1:0:
/usr/include/x86_64-linux-gnu/qt5/qtwidts/qapplication.h:37:fatal error:QtCore/qcoreapplication.h:没有这样的文件或目录
#包括
^
编译终止。
src/subdir.mk:21:目标“src/Qt 5 Training.o”的配方失败
make:**[src/Qt 5 Training.o]错误1

我安装了libqt5widgets5、qtdeclarative5开发、libqt5gui5、qtbase5开发,。。。在库本图。那么我有Qt 5吗?

请查看cmake Qt的文档,网址为

据此,

目标链接库(qt4\U培训Qt5::小部件)

可能会修复链接器错误

您的include目录看起来也不对,您不应该在这里添加库变量

cmake_minimum_required(VERSION 3.0.2)
project(qt4_training)
#find_package(Qt4 REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Core REQUIRED)

#include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
include_directories(${Qt5Widgets_INCLUDE_DIRS} ${Qt5Widgets_LIBRARIES} ${CMAKE_CURRENT_BINARY_DIR} ${Qt5Core_INCLUDE_DIRS} ${Qt5Core_LIBRARIES})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
set(Qt4_Training_SRCS Qt4_Training.cpp main.cpp)

#qt4_automoc(${Qt4_Training_SRCS})
add_executable(qt4_training ${Qt4_Training_SRCS})
target_link_libraries(qt4_training ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY})

install(TARGETS qt4_training RUNTIME DESTINATION bin)
...
CMakeFiles/qt4_training.dir/main.cpp.o: In function `main':
main.cpp:(.text.startup+0x37): undefined reference to `QApplication::QApplication(int&, char**, int)'
main.cpp:(.text.startup+0x47): undefined reference to `QWidget::show()'
main.cpp:(.text.startup+0x4c): undefined reference to `QApplication::exec()'
main.cpp:(.text.startup+0x5f): undefined reference to `QApplication::~QApplication()'
main.cpp:(.text.startup+0x96): undefined reference to `QApplication::~QApplication()'
collect2: error: ld returned 1 exit status
CMakeFiles/qt4_training.dir/build.make:110: recipe for target 'qt4_training' failed
make[2]: *** [qt4_training] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/qt4_training.dir/all' failed
make[1]: *** [CMakeFiles/qt4_training.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2
*** Failure: Exit code 2 ***
In file included from ../src/Qt 5 Training.cpp:1:0:
/usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:37:37: fatal error: QtCore/qcoreapplication.h: No such file or directory
 #include <QtCore/qcoreapplication.h>
                                     ^
compilation terminated.
src/subdir.mk:21: recipe for target 'src/Qt 5 Training.o' failed
make: *** [src/Qt 5 Training.o] Error 1