Я создаю проект из исходников и пытаюсь понять, что происходит в файлах CMakeLists.txt. где именно target_link_libraries ищет нужные файлы библиотеки?
конкретный файл CMakeLists.txt, который у меня есть:
target_link_libraries(MyApplication PRIVATE
Magnum::Application
Magnum::GL
Magnum::Magnum
Magnum::Shaders)
Я нашел папки с именами GL и Shaders в каталоге Magnum в проекте, и в них есть набор файлов заголовков. Я полагал, что target_link_libraries говорит cmake включить библиотеки в папку GL и Shaders. Однако я не могу найти соответствующую папку для приложения, поэтому мои рассуждения должны быть ошибочными. Что я знаю, так это то, что target_link_libraries делает что-то, связанное с тем, чтобы позволить окончательно собранной программе использовать набор библиотек.
Что именно делает target_link_libraries? где он ищет необходимые файлы, чтобы иметь возможность использовать нужные ему библиотеки?
Решение проблемы
target_link_librariesничего не связывает автоматически. У вас должна быть цель, ранее созданная с помощью add_library(или add_executable), где перечислены все файлы.
Способ добавления этих целевых объектов в ваш проект CMake может отличаться. Например, у вас могут быть исходные файлы библиотеки с конфигурацией CMakeLists.txtadd_library (где находится указанная команда) в какой-то папке libs/mylib. Затем в вашем CMakeLists.txt вы можете добавить библиотеку с расширением add_subdirectory(libs/mylib). Другой вариант — добавить библиотеку с расширением find_package.
Комментариев нет:
Отправить комментарий