Информация об изменениях

Сообщение Почему библиотека не включается в SHARED? от 13.12.2023 7:04

Изменено 13.12.2023 7:17 Shmj

Почему библиотека не включается в SHARED?
Вопрос такой, промучался 3 дня и сил уже нет.

Есть CMake-файл, там описана сборка SHARED-библиотеки. В нее включается много мелких библиотек с помощью target_link_libraries.

Мелкие библиотеки все статические — libmylib.a. Итоговая библиотека — SHARED — .so для Android и .dylib для macOS и iOS.

Так вот, один и тот же CMakeList файл — для iOS собирает библиотеку и она работает. Для Android — не видит символов.

Вот что сделал — вручную начал подключать эти мелкие .a библиотеки к проекту — и выявил что пару библиотек оно не включило в итоговый .so -файл. Ну взяло и не включило, хотя в target_link_libraries они указаны наряду с остальными. Если их вручную скопировать (эти .a-файлы) — то символы находит и итоговый проект собирается.

Пробовал добавить PUBLIC в target_link_libraries — ничего не дало.

В чем может быть проблема?
Почему библиотека не включается в SHARED?
Вопрос такой, промучался 3 дня и сил уже нет.

Есть CMake-файл, там описана сборка SHARED-библиотеки. В нее включается много мелких библиотек с помощью target_link_libraries.

Мелкие библиотеки все статические — libmylib.a. Итоговая библиотека — SHARED — .so для Android и .dylib для macOS и iOS.

Так вот, один и тот же CMakeList файл — для iOS собирает библиотеку и она работает. Для Android — не видит символов.

Вот что сделал — вручную начал подключать эти мелкие .a библиотеки к проекту — и выявил что пару библиотек оно не включило в итоговый .so -файл. Ну взяло и не включило, хотя в target_link_libraries они указаны наряду с остальными. Если их вручную скопировать (эти .a-файлы) а так же указать в target_link_libraries для итогового проекта — то символы находит и итоговый проект собирается.

Пробовал добавить PUBLIC в target_link_libraries — ничего не дало.

В чем может быть проблема?