LINUX.ORG.RU

CMake: как прописать линковку с использованием библиотеки?


0

1

Здравствуйте!


У меня есть проект, в котором используются библиотеки libSDL.o, libSDL_mixer.o и libogg.o.

Чтобы пошла сборка с использованием этих библиотек, в опциях линковки нужно указать:

-lSDL -lSDL_mixer -logg

Вопрос. Как это дело прописать в файле CMakeLists.txt ? Что-то рою-рою, но нахожу только как подключать библиотеки, которые собираются в самом проекте из исходников. А как подключать готовые библиотеки - не могу понять.

Я бы посмотрел в сторону модулей FindPkgConfig.cmake и UsePkgConfig.cmake.

KblCb ★★★★★ ()
Ответ на: комментарий от xintrea

не так, правильно так
find_package(SDL REQUIRED)
find_package(SDL_mixer REQUIRED)
target_link_libraries(exe ${SDL_LIBRARY} ${SDLMIXER_LIBRARY})

ну а для ogg видимо свой скрипт писать с помощью find_library

Reset ★★★★★ ()
Ответ на: комментарий от Reset

> не так, правильно так

find_package(SDL REQUIRED)

find_package(SDL_mixer REQUIRED)


target_link_libraries(exe ${SDL_LIBRARY} ${SDLMIXER_LIBRARY})


ну а для ogg видимо свой скрипт писать с помощью find_library



Да фтопку, у меня локальный проект, нужно тупо скомпилировать.

Однако на будущее, что обозначает

target_link_libraries(exe ${SDL_LIBRARY} ${SDLMIXER_LIBRARY})

?

Это то же самое что и link_libraries?
Что означает префикс «target_»?
Зачем там «exe»?

xintrea ()
Ответ на: комментарий от xintrea

Потому что целей может быть несколько и они могут отличаться библиотеками, которые надо линковать. exe это для примера название твоей цели.

Reset ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.