未知的 CMake 命令 QT4_ADD_RESOURCE
Unknown CMake Command QT4_ADD_RESOURCE
在这里制作文件非常新,所以如果这是一个菜鸟问题,请原谅我。我似乎无法在互联网上找到答案。
我已经从 github 派生了一个 public 存储库,它的存储库本身应该是下载、制作和 运行,但我已经修复了六个他们试图获取它的 make 文件中的错误 运行ning。现在我要解决这个问题,这似乎与 CMake 找不到正确的 QT4 命令有关。
当我在构建文件夹中时,说明(根据存储库的所有者)说键入 "cmake .." - 这显然是对父文件夹中 CMakeList.txt 的引用。该文件是 hosted on Github,抛出错误的行是第 94 行,它说:
QT4_ADD_RESOURCES(OFFNAO_RES_SRCS ${OFFNAO_RES})
我正在尝试在 Ubuntu 14.04.5 上构建此程序(因为它最初是在 OS 上构建的,我可以在它运行后对其进行升级)。
它吐出的错误文本是:
CMake Error at CMakeLists.txt:94(QT$_ADD_RESOURCES):
Unknown CMake command "QT4_ADD_RESOURCES".
-- 配置不完整,出现错误!
我已经安装了 qt4-dev-tools(它也安装了所有 qt4 库)。
我似乎找不到如何让 CMake 识别 QT4 及其命令。
我是 CMake 的新手,这是我第一次遇到 QT4,所以我不知道我在找什么。如果需要,很乐意提供更多信息。感谢所有帮助。
编辑:
这是 offnao 的内容 CMakeList.txt:
cmake_minimum_required(VERSION 2.8.0 FATAL_ERROR)
PROJECT(OFFNAO)
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${CTC_DIR}/libnaoqi/include)
INCLUDE_DIRECTORIES(${CTC_DIR}/zlib/include)
INCLUDE_DIRECTORIES(${CTC_DIR}/../sysroot_legacy/usr/include)
SET(OFFNAO_CXX_SRCS
utils/OverlayPainter.cpp
// contents skipped for brevity
tabs/teamBallTab.cpp
)
SET(OFFNAO_MOC
readers/reader.hpp
// contents skipped for brevity
tabs/teamBallTab.hpp
)
if(CMAKE_TOOLCHAIN_FILE)
list(APPEND OFFNAO_CXX_SRCS tabs/cameraTab.cpp)
list(APPEND OFFNAO_MOC tabs/cameraTab.hpp)
endif(CMAKE_TOOLCHAIN_FILE)
SET(OFFNAO_UI
visualiser.ui
ConnectionBar.ui
tabs/LogTab.ui
tabs/LogsTab.ui
)
SET(OFFNAO_RES
resources/visualiser_resources.qrc
)
# build cxx files for resources
QT4_ADD_RESOURCES(OFFNAO_RES_SRCS ${OFFNAO_RES})
# build ui_XXX files from the XML-style .ui files
QT4_WRAP_UI(OFFNAO_UI_SRCS ${OFFNAO_UI})
# this moc's the above variable and appends to the cxx sources
QT4_WRAP_CPP(OFFNAO_MOC_SRCS ${OFFNAO_MOC})
ADD_EXECUTABLE(offnao.bin ${OFFNAO_CXX_SRCS} ${OFFNAO_RES_SRCS} ${OFFNAO_MOC_SRCS} ${OFFNAO_UI_SRCS})
cotire(offnao.bin)
set_source_files_properties(
tabs/graphTab.cpp
tabs/plots.cpp
tabs/walkTab.cpp
tabs/zmpTab.cpp
main.cpp
visualiser.cpp
${OFFNAO_MOC_SRCS} #too lazy to split and list them
PROPERTIES COMPILE_FLAGS "-I${QWT_INCLUDE_DIR}")
find_library ( QGLVIEWER_LIBRARY NAMES QGLViewer qglviewer-qt4 )
find_package ( OpenGL REQUIRED )
find_package ( PNG REQUIRED )
TARGET_LINK_LIBRARIES(
offnao.bin
${QT_LIBRARIES}
${QWT_LIBRARY}
${QGLVIEWER_LIBRARY}
此外,声明构建此文件的自述文件相当模糊,它实际上并没有说明 运行 这些命令来自哪个文件夹。它指出:
Welcome to Off-Nao, the rUNSWift debugging toolsuite.
To build this project, either:
You get lucky and bin/build_setup.sh just works :D
(verified under Ubuntu 14.04.1 LTS both natively and in VMs;
but builds successfully then segfaults at runtime in libGL.so.1
under fresh download of 14.04.3 LTS @ 15/9/2015
according to gdb - so much for Ubuntu being stable).
---OR---
You need Qt4 and probably a bunch of other things like QGLViewer to build it natively:
$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./offnao
Once you have performed the steps above once, in future you only need to:
$ make
$ ./offnao
In the 'build' directory
我确实遇到了 LibGL.so.1 中自述文件中提到的段错误,所以我尝试按照下面的说明进行操作。我只能得到 "cmake .." 阶段,这就是我得到错误的地方。
将我之前的评论重新表述为答案:
要使用宏 QT4_ADD_RESOURCES、QT4_WRAP_UI、QT4_WRAP_CPP 和其他宏,您需要先在 CMakeLists.txt 中调用 find_package(Qt4 REQUIRED)
。请参阅 FindQt4.cmake 模块 (https://cmake.org/cmake/help/v3.0/module/FindQt4.html) 的文档。
在这里制作文件非常新,所以如果这是一个菜鸟问题,请原谅我。我似乎无法在互联网上找到答案。
我已经从 github 派生了一个 public 存储库,它的存储库本身应该是下载、制作和 运行,但我已经修复了六个他们试图获取它的 make 文件中的错误 运行ning。现在我要解决这个问题,这似乎与 CMake 找不到正确的 QT4 命令有关。
当我在构建文件夹中时,说明(根据存储库的所有者)说键入 "cmake .." - 这显然是对父文件夹中 CMakeList.txt 的引用。该文件是 hosted on Github,抛出错误的行是第 94 行,它说:
QT4_ADD_RESOURCES(OFFNAO_RES_SRCS ${OFFNAO_RES})
我正在尝试在 Ubuntu 14.04.5 上构建此程序(因为它最初是在 OS 上构建的,我可以在它运行后对其进行升级)。 它吐出的错误文本是:
CMake Error at CMakeLists.txt:94(QT$_ADD_RESOURCES):
Unknown CMake command "QT4_ADD_RESOURCES".
-- 配置不完整,出现错误!
我已经安装了 qt4-dev-tools(它也安装了所有 qt4 库)。 我似乎找不到如何让 CMake 识别 QT4 及其命令。
我是 CMake 的新手,这是我第一次遇到 QT4,所以我不知道我在找什么。如果需要,很乐意提供更多信息。感谢所有帮助。
编辑: 这是 offnao 的内容 CMakeList.txt:
cmake_minimum_required(VERSION 2.8.0 FATAL_ERROR)
PROJECT(OFFNAO)
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${CTC_DIR}/libnaoqi/include)
INCLUDE_DIRECTORIES(${CTC_DIR}/zlib/include)
INCLUDE_DIRECTORIES(${CTC_DIR}/../sysroot_legacy/usr/include)
SET(OFFNAO_CXX_SRCS
utils/OverlayPainter.cpp
// contents skipped for brevity
tabs/teamBallTab.cpp
)
SET(OFFNAO_MOC
readers/reader.hpp
// contents skipped for brevity
tabs/teamBallTab.hpp
)
if(CMAKE_TOOLCHAIN_FILE)
list(APPEND OFFNAO_CXX_SRCS tabs/cameraTab.cpp)
list(APPEND OFFNAO_MOC tabs/cameraTab.hpp)
endif(CMAKE_TOOLCHAIN_FILE)
SET(OFFNAO_UI
visualiser.ui
ConnectionBar.ui
tabs/LogTab.ui
tabs/LogsTab.ui
)
SET(OFFNAO_RES
resources/visualiser_resources.qrc
)
# build cxx files for resources
QT4_ADD_RESOURCES(OFFNAO_RES_SRCS ${OFFNAO_RES})
# build ui_XXX files from the XML-style .ui files
QT4_WRAP_UI(OFFNAO_UI_SRCS ${OFFNAO_UI})
# this moc's the above variable and appends to the cxx sources
QT4_WRAP_CPP(OFFNAO_MOC_SRCS ${OFFNAO_MOC})
ADD_EXECUTABLE(offnao.bin ${OFFNAO_CXX_SRCS} ${OFFNAO_RES_SRCS} ${OFFNAO_MOC_SRCS} ${OFFNAO_UI_SRCS})
cotire(offnao.bin)
set_source_files_properties(
tabs/graphTab.cpp
tabs/plots.cpp
tabs/walkTab.cpp
tabs/zmpTab.cpp
main.cpp
visualiser.cpp
${OFFNAO_MOC_SRCS} #too lazy to split and list them
PROPERTIES COMPILE_FLAGS "-I${QWT_INCLUDE_DIR}")
find_library ( QGLVIEWER_LIBRARY NAMES QGLViewer qglviewer-qt4 )
find_package ( OpenGL REQUIRED )
find_package ( PNG REQUIRED )
TARGET_LINK_LIBRARIES(
offnao.bin
${QT_LIBRARIES}
${QWT_LIBRARY}
${QGLVIEWER_LIBRARY}
此外,声明构建此文件的自述文件相当模糊,它实际上并没有说明 运行 这些命令来自哪个文件夹。它指出:
Welcome to Off-Nao, the rUNSWift debugging toolsuite.
To build this project, either:
You get lucky and bin/build_setup.sh just works :D
(verified under Ubuntu 14.04.1 LTS both natively and in VMs;
but builds successfully then segfaults at runtime in libGL.so.1
under fresh download of 14.04.3 LTS @ 15/9/2015
according to gdb - so much for Ubuntu being stable).
---OR---
You need Qt4 and probably a bunch of other things like QGLViewer to build it natively:
$ mkdir build
$ cd build
$ cmake ..
$ make
$ ./offnao
Once you have performed the steps above once, in future you only need to:
$ make
$ ./offnao
In the 'build' directory
我确实遇到了 LibGL.so.1 中自述文件中提到的段错误,所以我尝试按照下面的说明进行操作。我只能得到 "cmake .." 阶段,这就是我得到错误的地方。
将我之前的评论重新表述为答案:
要使用宏 QT4_ADD_RESOURCES、QT4_WRAP_UI、QT4_WRAP_CPP 和其他宏,您需要先在 CMakeLists.txt 中调用 find_package(Qt4 REQUIRED)
。请参阅 FindQt4.cmake 模块 (https://cmake.org/cmake/help/v3.0/module/FindQt4.html) 的文档。