Как я могу связать статическую библиотеку, которая зависит от других библиотек в cmake?C++

Программы на C++. Форум разработчиков
Anonymous
Как я могу связать статическую библиотеку, которая зависит от других библиотек в cmake?

Сообщение Anonymous »

У меня есть статическая библиотека, зависящая от gtkmm. Я успешно создаю файл liblibrary.a, однако когда я пытаюсь связать клиентское приложение с этой библиотекой, я получаю неопределенную ссылку на функции gtkmm. Как я могу связать статическую библиотеку, которая зависит от других библиотек?
Файл cmake библиотеки:

Код: Выделить всё

cmake_minimum_required(VERSION 3.28)
project(library)

set(CMAKE_CXX_STANDARD 23)

find_package(PkgConfig REQUIRED)
pkg_check_modules(GTKMM REQUIRED gtkmm-3.0)
include_directories(${GTKMM_INCLUDE_DIRS})
link_directories(${GTKMM_LIBRARY_DIRS})

add_library(library STATIC library.cpp library.h)

target_link_libraries(library ${GTKMM_LIBRARIES})
CMake-файл клиентского приложения:

Код: Выделить всё

cmake_minimum_required(VERSION 3.28)
project(cairomotion)

set(CMAKE_CXX_STANDARD 23)

include_directories(/home/user/Projects/library)

add_executable(client main.cpp)

target_link_libraries(client /home/user/Projects/library/cmake-build-debug/liblibrary.a)

Спасибо за помощь

Подробнее здесь: https://stackoverflow.com/questions/788 ... s-in-cmake

Вернуться в «C++»