Установите заголовочные файлы add_subdirectory (A) перед сборкой add_subdirectory (B) - PullRequest
0 голосов
/ 05 июня 2019

Я новичок в cmake и пытаюсь собрать свой код на платформах UNIX и Windows.У меня есть add_subdirectory(A) и add_subdirectory(B).Если я собираю только add_subdirectory(A), он устанавливает файлы заголовков в какое-то местоположение xyz, а затем, когда я собираю add_subdirectory(B), он использует файлы заголовков из ранее установленного местоположения xyz.Но когда я пытаюсь собрать как add_subdirectory(A), так и add_subdirectory(B) вместе, происходит сбой с отсутствующими заголовочными файлами из местоположения xyz, поскольку они не установлены.Итак, мой вопрос, есть ли способ, с помощью которого я могу сказать cmake собрать и установить add_subdirectory(A), а затем начать сборку add_subdirectory(B).

Я пытался посмотреть онлайн, но безуспешно.

Мой мастер CMakeLists.txt :

add_subdirectory(TradeFlowCommonFrameworkLib/cpp/src)
add_subdirectory(TradeFlowCommonDataLib/cpp/src)

install(EXPORT Findfotmc DESTINATION ${INSTALL_FOTMC}/cmake)

----------------------------------------------------------------

1 Ответ

0 голосов
/ 06 июня 2019

Добавление подкаталогов не определяет зависимости между ними. Вы должны явно связать ваш второй исполняемый файл / библиотеку с вашей первой библиотекой.

В подпунктах CMakeLists вашего проекта B (TradeFlowCommonDataLib / cpp / src) вы должны добавить что-то вроде этого:

target_link_libraries(B A)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...