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



我创建了一个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})

错误信息是

D:/vcpkg/installed/x64-windows/share/hdf5/hdf5 targets处的CMake错误。CMake:37(消息(:已定义此导出集中的某些(但不是全部(目标。

定义的目标:hdf5::hdf5共享;hdf5::hdf5_hl-共享

尚未定义的目标:hdf5::hdf5_cpp-shared;hdf5::hdf5_hl_cpp共享

如果我按如下删除VTK的包含,则不会报告任何错误。但很明显,我不能将VTK包含在CTPTest.cpp中,这是不可接受的。

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})

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

您似乎遇到了vcpkg问题#15502。

有一个修复可用的拉请求,另一个修复的拉请求现在被合并。

最新更新