使用MacOS Sierra,cmake 3.7.2和qt 5.8.0与自制软件一起安装。在这个特定的应用程序中,cmake完成没有错误,但在构建期间我收到以下错误:
CMakeFiles/CereLink.dir/build.make:174: *** target pattern contains no `%'. Stop.
make[1]: *** [CMakeFiles/CereLink.dir/all] Error 2
make: *** [all] Error 2
违规行有Qt5::Core-NOTFOUND
这个应用程序肯定是一个问题,因为我有其他依赖于Qt5的应用程序可以正确构建,而且这个应用程序依赖于一个连接Qt5的ExternalProject,它也可以正确构建!
可以找到有问题的应用程序online。
cmake似乎正确地找到了Qt5。使用
FIND_PROGRAM(QT_QMAKE_EXECUTABLE_FINDQT
NAMES
qmake qmake5 qmake-qt5
PATHS
"${QT_SEARCH_PATH}/bin"
"$ENV{QTDIR}/bin"
)
SET(QT_QMAKE_EXECUTABLE ${QT_QMAKE_EXECUTABLE_FINDQT} CACHE PATH "Qt qmake program.")
EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PREFIX" OUTPUT_VARIABLE QT_INSTALL_PREFIX)
message(${QT_INSTALL_PREFIX})
举报/usr/local/Cellar/qt5/5.8.0_1
find_package(Qt5 COMPONENTS Core REQUIRED)
或find_package(Qt5Core REQUIRED)
似乎都正常工作。有关证据,请参阅下面的附加信息。
编辑 - 补充信息:
message(${Qt5Core_FOUND})
打印1
。message(${Qt5Core_LIBRARIES})
打印Qt5::Core
Qt5Core_DIR
而不是CMAKE_PREFIX_PATH
不会改变
任何东西。Qt5Core
或${Qt5Core_LIBRARIES}
(以及其他包含)无济于事。get_target_property(QtCore_location Qt5::Core IMPORTED_LOCATION_RELEASE)
:/usr/local/Cellar/qt5/5.8.0_1/lib/QtCore.framework/QtCore
答案 0 :(得分:1)
问题是我在配置另一个第三方库时覆盖了<span data-sparkline-type="pie" data-sparkline-offset="90" data-sparkline-piesize="18px">3,5,2</span>
。我花了一段时间才发现这个问题,因为它发生在找到Qt的所有调用之后。我想查找/链接Qt的某些方面是推迟到配置完成之后,因此在设置此变量之后,这些延迟方面必须使用CMAKE_IMPORT_LIBRARY_SUFFIX
。我的解决方案是创建一个新变量并手动设置/使用,而不是依赖CMAKE_IMPORT_LIBRARY_SUFFIX
。