Проект A создает общую библиотеку, зависящую от OpenMP.
Код: Выделить всё
find_package(OpenMP REQUIRED)
add_library(lib_a SHARED file_a.cpp)
target_link_libraries(lib_a OpenMP::OpenMP_CXX)
Обратите внимание, что сам проект B не зависит от OpenMP.
Код: Выделить всё
find_package(project_a REQUIRED)
add_library(lib_b SHARED file_b.cpp)
target_link_libraries(lib_b project_a::lib_a)
При компиляции проекта B я получаю сообщение об ошибке:
Код: Выделить всё
Target "lib_b" links to target "OpenMP::OpenMP_CXX" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing?
Но поскольку сам проект B этого не делает это не зависит от OpenMP, мне не нужно этого делать, верно??
Полагаю, я упускаю какой-то шаг в cmake проекта А?
Как я могу это исправить, не находя OpenMP в проекте B?
Подробнее здесь: https://stackoverflow.com/questions/784 ... -on-openmp