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



使用Macos Sierra,CMake 3.7.2和QT 5.8.0与Homebrew安装。在此特定应用程序中,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的外部物体,该应用程序也可以正确构建!

有问题的应用程序可以在线找到。

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

问题是我在配置另一个第三方库时正在覆盖CMAKE_IMPORT_LIBRARY_SUFFIX。我花了一段时间才找到这个问题,因为它发生在所有调用QT之后。我想查找/链接QT的某些方面已推迟到配置完成后,因此设置了此变量后,这些递延方面必须使用CMAKE_IMPORT_LIBRARY_SUFFIX。我的解决方案是创建一个新变量并设置/使用该方法,而不是依靠CMAKE_IMPORT_LIBRARY_SUFFIX

相关内容

  • 没有找到相关文章

最新更新