Связывание 2 статических библиотек с target_link_libraries
Я пытаюсь связать две статические библиотеки с помощью cmake, но не получаю ожидаемого результата, когда просматриваю библиотеки с помощью ar -t
,
Небольшой пример, где библиотека A связана с B:
файл a.c
:
void a(){}
файл b.c
:
void b(){}
файл CMakeLists.txt
:
project(test C)
add_library(a STATIC "a.c")
add_library(b STATIC "b.c")
target_link_libraries(a b)
Я ожидал увидеть оба объектных файла в выводе ar -t liba.a
но вместо этого я вижу только a.c.o
на выходе.
1 ответ
Вы всегда можете отладить свой CMakeLists.txt, используя аргумент VERBOSE=ON, чтобы (в Linux) таким образом вы могли проверить, соответствуют ли команды ожидаемым.
$> make VERBOSE=ON
В вашем случае CMake сканирует зависимости ac и отбрасывает bc как реальную зависимость для ac, поэтому он не связан.