У меня есть две библиотеки:
a
;b
: библиотека только для заголовков, зависящая отa
.
Я не уверен, можно ли связать b
с a
. Если да, то как я могу это сделать?
На самом деле у меня есть третья библиотека c
, которая зависит от обеих. Этот скрипт CMake не работает:
[...]
add_library(a ${a_SRC})
target_link_libraries(a CONAN_PKG::<foo>)
add_library(b INTERFACE)
target_sources(b INTERFACE ${b_SRC})
target_include_directories(b INTERFACE "${PROJECT_SOURCE_DIR}/src/include/b/")
target_link_libraries(b INTERFACE a) # This has no effect, I think!
add_executable(c ${c_SRC})
target_link_libraries(c b a)
Я использовал обходной путь, добавив исходные файлы a
в определение c
.
[...]
add_executable(c ${c_SRC} ${a_SRC})
[...]
I used a workaround by adding the source files of a into the definition of c.
В библиотеках только для заголовков не должно быть исходных файлов, иначе они будут включены в заголовки. Не нужно их компилировать. - person tkausl   schedule 01.09.2020a
должен быть только заголовком, либо мне нужно добавить файл dummy.cpp вb
, чтобы он скомпилировался и был связан сa
. - person Oussama Ennafii   schedule 01.09.2020