微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

名侦探柯南:目标已经存在

如何解决名侦探柯南:目标已经存在

我将conan_cmake_run()宏用于CMake。当我添加两个具有相同外部dep的库时。它会导致错误消息。

示例:

conan_cmake_run(REQUIRES boost/1.74.0 BASIC_SETUP CMAKE_TARGETS)
conan_cmake_run(REQUIRES hdf5/1.10.6  BASIC_SETUP CMAKE_TARGETS)

Boost和HDF5将zlib添加为外部dep。因此,在CMake配置期间会导致以下错误消息。

CMake Error at build/conanbuildinfo_multi.cmake:152 (add_library):
  add_library cannot create imported target "CONAN_PKG::zlib" because another
  target with the same name already exists.
Call Stack (most recent call first):
  build/conanbuildinfo_multi.cmake:286 (conan_define_targets)
  cmake/modules/conan.cmake:515 (conan_basic_setup)
  CMakeLists.txt:104 (conan_cmake_run)

有没有一种方法可以不为boost / 1.74.0或hdf5 / 1.10.6明确添加“ CONAN_PKG :: zlib”?

非常感谢!

最好

解决方法

重要的是不要运行两次cmake_conan_run,而只运行一次具有多个参数的东西,例如:

conan_cmake_run(REQUIRES boost/1.74.0 hdf5/1.10.6 BASIC_SETUP CMAKE_TARGETS)

单独运行,第二个将覆盖前一个的结果。此外,在安装中可能会引起注意的冲突(例如,升压/1.74(取决于zlib / 1.2.8)和hdf5 / 1.10.6(取决于zlib / 1.2.11))。安装项目的依赖项时,应完成一个conan install或一个conan_cmake_run()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。