gpt4 book ai didi

cmake - 使用 cmake 生成构建目标时找不到 CONAN_PKG::

转载 作者:行者123 更新时间:2023-12-04 00:02:19 29 4
gpt4 key购买 nike

CONAN_PKG::spdlog使用 CMake 生成构建配置时未找到。

我使用的 conan 包是 spdlog/1.3.1@bincrafters/stable。
我有一个 CMake 可执行目标,它引用了一个 conan 包 spdlog .我收到此错误消息:

[build] CMake Error at src/apps/ResultObserver/CMakeLists.txt:10 (ADD_EXECUTABLE):
[build] Target "ResultObserver" links to target "CONAN_PKG::spdlog" but the target
[build] was not found. Perhaps a find_package() call is missing for an IMPORTED
[build] target, or an ALIAS target is missing?

我的 CMakeLists.txt 中有这些行。
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

ADD_EXECUTABLE(ResultObserver src/ResultObserver.cpp)

TARGET_LINK_LIBRARIES(ResultObserver CONAN_PKG::spdlog)

另外,安装conan包后,会在build目录下生成conanbuildinfo.cmake文件。

我检查了文件内部。它包含这些行。
    add_library(CONAN_PKG::spdlog INTERFACE IMPORTED)

# Property INTERFACE_LINK_FLAGS do not work, necessary to add to INTERFACE_LINK_LIBRARIES
set_property(TARGET CONAN_PKG::spdlog PROPERTY INTERFACE_LINK_LIBRARIES .........

有谁知道原因吗?

最佳答案

您正在寻找 TARGETS方法。您需要通过TARGETSconan_basic_setup()生成 CONAN_PKG:: .否则,只有 ${CONAN_LIBS}将可用。

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)

ADD_EXECUTABLE(ResultObserver src/ResultObserver.cpp)
TARGET_LINK_LIBRARIES(ResultObserver CONAN_PKG::spdlog)

关于 CMake 目标生成器的更多信息在这里:
https://docs.conan.io/en/latest/integrations/build_system/cmake/cmake_generator.html#targets-approach

关于cmake - 使用 cmake 生成构建目标时找不到 CONAN_PKG::<PKG-NAME>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58749261/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com