2015-01-08 2 views
0

Предположим, у меня есть исполняемый альфа, который должен связываться с общей бета-бета-версией. Сама бета зависит от общей библиотеки Gamma. Гамма уже существует для меня, но я должен сам собрать Альфу и Бету, используя cmake.Когда включать библиотеку в target_link_libraries

Итак, с двумя файлами CMakeLists.txt, по одному для каждого из Alpha и Beta, я использую команду target_link_libraries, чтобы указать, какие библиотеки необходимы для компиляции. Мой вопрос: какой из этих двух файлов CMakeLists.txt мне нужно добавить Gamma?

Beta напрямую зависит от Gamma, потому что код в бета-функции вызывает функции в Gamma. Однако Alpha косвенно зависит от Gamma, поэтому мне нужно сообщить об этом в файл CMakeLists.txt от Alpha.

+0

См. Http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html – steveire

ответ

1

Если CMake знает о зависимости Beta-> Gamma, он должен иметь возможность заставить все работать. Если бы был случай, когда вы создали Beta, не сообщив CMake о своей зависимости от Gamma (что можно сделать), вам тогда придется явно выражать зависимость Alpha-> Gamma.

Смежные вопросы