Cmake Qt5 Debian 8(Jessie)使用Qt5::X11Extras生成错误
我正在努力解决以下问题,我真的希望有人能给我一些有用的建议Cmake Qt5 Debian 8(Jessie)使用Qt5::X11Extras生成错误,cmake,debian,qt5,Cmake,Debian,Qt5,我正在努力解决以下问题,我真的希望有人能给我一些有用的建议 find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras) IF(QT_USE_FILE) INCLUDE(${QT_USE_FILE}) ENDIF(QT_USE_FILE)
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
在使用CMAD3.3.2构建QT5.8的C++应用程序时,在“生成”步骤中,出现以下错误:
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
以下是我的CMakeLists中的两行代码,这两行代码引发了问题:
80 - ADD_DEFINITIONS(-DQT_GUI_LIBS -DQT_CORE_LIB -DQT3_SUPPORT)
81 - ADD_LIBRARY(ntActions ${ntActionsGUI_SRCS} ${ntActions_GUI}
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
我的路径变量包括QT5.8安装路径(lib、lib/CMake、bin、include)。
CMake能够自动找到我正在使用的所有Qt5软件包,包括Qt5X11Extras
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
我错过什么了吗
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
我的开发环境。如下所示:Debian 8、Qt(5.8)、CMake(3.8.2)
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
任何帮助都将不胜感激
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
谢谢
布巴
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
添加:qt5Setup.cmake文件
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
嗨Tsyvarev,谢谢你的反馈。我有一个qt5Setup.cmake文件来设置Qt5,如下所示:
find_package(Qt5 COMPONENTS Core Widgets Gui Network Concurrent OpenGL
Svg PrintSupport Sql SerialPort MultimediaWidgets X11Extras)
IF(QT_USE_FILE)
INCLUDE(${QT_USE_FILE})
ENDIF(QT_USE_FILE)
include_directories(
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Network_INCLUDE_DIRS}
${Qt5OpenGL_INCLUDE_DIRS}
${Qt5Svg_INCLUDE_DIRS}
${Qt5Concurrent_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5Sql_INCLUDE_DIRS}
${QtSerialPort_INCLUDE_DIRS}
${Qt5MultimediaWidgets_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS})
LINK_LIBRARIES(
${Qt5Svg_LIBRARIES}
${Qt5Network_LIBRARIES}
${Qt5Widget_LIBRARIES}
${Qt5Sql_LIBRARIES}
${QtSerialPort_LIBRARIES}
${Qt5MultimediaWidgets_LIBRARIES}
${Qt5PrintSupport_LIBRARIES}
${Qt5X11Extras_LIBRARIES})
对于这种类型的CMake错误消息,引用行有一点意义:问题不在于如何创建库,而在于如何链接库。提供代码的其他部分,包括:
find_-package(Qt5)
call、target_-link_-libraries(ntActions)
或Qt5_-use_-modules(ntActions)
。在配置过程中是否有一些警告,例如?顺便说一句,调用add_library(ntActions)
创建“ntActionsITK”目标对我来说似乎很奇怪。嗨,Tsyvarev,谢谢你的反馈。我有一个qt5Setup.cmake文件来设置Qt5,如下所示:您能检查在find_package(Qt5)
之后目标Qt5::X11Extras
是否实际存在吗?例如,在find_package()
:if(TARGET Qt5::X11Extras)
之后添加这些行,消息(“TARGET Qt5::X11Extras存在”)
,endif()
。哪个CMakeLists.txt
include()
s脚本qt5Setup.cmake
?是的,目标存在。CMake按预期检测到它。NTLibMacros.CMake脚本通过以下几行使用上面详述的CMake:(宏(NTLib_USE_QT5)包括(${NTLib_SOURCE_DIR}/CMake/qt5Setup.CMake)ENDMACRO(NTLib_USE_QT5)@boubakeurbelarousi您找到问题的解决方案了吗?我有同样的问题。