cmake 此导出集中的某些(但不是全部)目标已定义

fwzugrvs  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(170)

我创建了一个CMakeLists.txt,内容如下

cmake_minimum_required (VERSION 3.8)
project(CTP_dll)

add_library(CTPdll SHARED CTPdll.cpp)
add_executable(CTPTest CTPTest.cpp)
target_link_libraries(CTPTest CTPdll)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(CTPdll ${OpenCV_LIBS})

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
target_link_libraries(CTPTest ${VTK_LIBRARIES})

错误信息是
CMake Error at D:/vcpkg/installed/x64-windows/share/hdf5/hdf5-targets.cmake:37(message):此导出集中的某些(但不是全部)目标已定义。
定义的目标:hdf5::hdf5-shared; hdf5::hdf5_hl-shared
尚未确定的目标:hdf5::hdf5_cpp-shared; hdf5::hdf5_hl_cpp-shared
如果我删除包含VTK如下,没有错误将被报告。但是很明显,我不能在CTPTest.cpp中包含VTK,这是不可接受的。

cmake_minimum_required (VERSION 3.8)
project(CTP_dll)

add_library(CTPdll SHARED CTPdll.cpp)
add_executable(CTPTest CTPTest.cpp)
target_link_libraries(CTPTest CTPdll)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(CTPdll ${OpenCV_LIBS})

我在Windows 10平台上使用Visual Studio 2022编译了这个。网上也有类似的问题,但没有人回答。所以我提出这个问题,希望有人能帮上忙。

相关问题