cmake找到了Qt5Core,但是build.make报告" Qt5 :: Core-NOTFOUND"

时间:2017-02-21 03:04:04

标签: macos cmake qt5

使用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

1 个答案:

答案 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