我将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”?
非常感谢!
最好
答案 0 :(得分:2)
重要的是不要运行两次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()
。