Ubuntu 13.04 CMake and Qt4 and Qt5

I am using the new Ubuntu 13.04 and installed qt via apt-get install . It seems that qt5 is installed now. The qake project using qt5 works well.

I had the same code that was running on a machine with qt4 installed on ubuntu 12.04, and it worked fine. But now I get the following error message: (Don’t worry about what happens in boost, it comes from parent CMakeLists.txt)

 CMake Error at /usr/share/cmake-2.8/Modules/FindQt4.cmake:619 (message): Could NOT find QtCore. Check /home/simongroth/Projects/pgCrazyMachinesVR/src-build2/CMakeFiles/CMakeError.log for more details. Call Stack (most recent call first): Views/LevelEditor/CMakeLists.txt:32 (FIND_PACKAGE) CMake Warning at /usr/share/cmake-2.8/Modules/FindQt4.cmake:615 (message): /usr/bin/qmake-qt4 reported QT_INSTALL_LIBS as "/usr/lib/x86_64-linux-gnu" but QtCore could not be found there. Qt is NOT installed correctly for the target build environment. Call Stack (most recent call first): Views/LevelEditor/CMakeLists.txt:32 (FIND_PACKAGE) -- Boost version: 1.49.0 -- Found the following Boost libraries: -- thread -- Configuring incomplete, errors occurred! 

This is my CMakeLists.txt . Does anyone know how to use qt4 and qt5 simultaneously on new ubuntu? Thanks in advance.

 FILE(GLOB COLLECTED_HDR_FILES *.hpp) FILE(GLOB COLLECTED_SRC_FILES *.cpp) FILE(GLOB COLLECTED_UI_FILES *.ui) FILE(GLOB COLLECTED_RCS_FILES *.qrc) SET( SRCS ${COLLECTED_SRC_FILES} ) SET( HDRS ${COLLECTED_HDR_FILES} ) SET( MOC_HDRS ${HDRS} ) SET( UIS ${COLLECTED_UI_FILES} ) SET( RCS ${COLLECTED_UI_FILES} MainWindow.qrc ) # enable warnings ADD_DEFINITIONS(-Wall) # this command finds Qt4 libraries and sets all required variables # note that it Qt4, not QT4 or qt4 FIND_PACKAGE(Qt4 REQUIRED) FIND_PACKAGE(OpenGL REQUIRED) # by default only QtCore and QtGui modules are enabled # other modules must be enabled like this: SET(QT_USE_QTXML TRUE) SET(QT_USE_QTOPENGL TRUE) # add some useful macros and variables # (QT_USE_FILE is a variable defined by FIND_PACKAGE( Qt4 ) that contains a path to CMake script) INCLUDE( ${QT_USE_FILE} ) # this command will generate rules that will run rcc on all files from SAMPLE_RCS # in result SAMPLE_RC_SRCS variable will contain paths to files produced by rcc QT4_ADD_RESOURCES( RC_SRCS ${RCS} ) # this will run uic on .ui files: QT4_WRAP_UI( UI_HDRS ${UIS} ) # and finally this will run moc: QT4_WRAP_CPP( MOC_SRCS ${MOC_HDRS} ${UI_HDRS} ) # we need this to be able to include headers produced by uic in our code # (CMAKE_BINARY_DIR holds a path to the build directory, while INCLUDE_DIRECTORIES() works just like INCLUDEPATH from qmake) INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${OPENGL_INCLUDE_DIR}) # here we instruct CMake to build executable from all of the source files ADD_EXECUTABLE( LevelEditor ${HDRS} ${SRCS} ${MOC_SRCS} ${RC_SRCS} ${UI_HDRS} ) # last thing we have to do is to tell CMake what libraries our executable needs, # luckily FIND_PACKAGE prepared QT_LIBRARIES variable for us: TARGET_LINK_LIBRARIES( LevelEditor ${QT_LIBRARIES} ${OPENGL_LIBRARIES}) 
+4
source share
1 answer

Adding qt5 to CMakeLists.txt is different from qt4, you can find a lot of useful links, for example this , by the way the version of my ubuntu 12.04 and I installed qt without apt-get, I use this format to find qt in my cmakelists.txt:

 find_package(Qt5Widgets) include_directories(${Qt5Widgets_INCLUDES} /opt/Qt5.0.2/5.0.2/gcc/include/QtGui /opt/Qt5.0.2/5.0.2/gcc/include/QtCore /opt/Qt5.0.2/5.0.2/gcc/include/QtNetwork /opt/Qt5.0.2/5.0.2/gcc/include/QtWidgets /opt/Qt5.0.2/5.0.2/gcc/include/QtWebKit /opt/Qt5.0.5/5.0.5/gcc/include/QtScript ) add_definitions(${Qt5Widgets_DEFINITIONS}) set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} -I/opt/Qt5.0.2/5.0.2` /gcc/include -L/opt/Qt5.0.2/5.0.2/gcc/lib -DQT5")` 

you must replace the address of your header files with my address, and also use target_classes: this way:

 target_link_libraries(LevelEditor ${OPENGL_LIBRARIES} ${Qt5Widgets_LIBRARIES}) 
+4
source

Source: https://habr.com/ru/post/1480488/


All Articles