GOOGLE ADS

вторник, 3 мая 2022 г.

where does target_link_libraries look for the required files?

Я создаю проект из исходников и пытаюсь понять, что происходит в файлах 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.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...