Как связать библиотеку ".so" в Microsoft Visual Studio

Мне было интересно, знает ли кто-нибудь, как связать динамическую библиотеку.so (или статическую библиотеку для этого материала) в Microsoft Visual Studio. Следующие шаги не работают ни для.a, ни для.so.

Я играю с подключением vs-android для разработки в Android NDK с использованием MVS и пытаюсь добавить в проект пользовательскую библиотеку, скомпилированную как.so.

1 - Я создал проект динамической библиотеки (.so) вместе с одним из примеров проектов (проект san-angeles) в том же решении.

2 - Я установил проект.so, давайте назовем его "движок" как зависимость от san-angeles. Файл engine.so создается без каких-либо проблем и отображается в папке {SolutionFolder?}/Android/Debug.

3 - Я добавил engine.so в компоновщик и добавил в него дополнительные компоненты san-angeles и папку {SolutionFolder?}/Android/Debug (в виде полного пути, например, C:/projects/.../Debug) к дополнительные каталоги компоновщика.

Но когда я собираю san-angeles, я получаю ошибку:

"arm-linux-androideabi-g ++. exe: engine.so: такого файла или каталога нет"

Я предполагаю, что мне нужно сделать что-то еще, чтобы добавить.so /.a в проект? Может быть, изменить имя на libengine.so или что-то в этом роде? Многие из включенных по умолчанию включений имеют префикс lib, поэтому я не знаю, так ли это.

Спасибо за помощь, Хайме

2 ответа

Решение

Итак, в моем случае это было решено с помощью:

1 - Наименование сгенерированного engine.a как libengine.a

2 - Вместо MVS, добавив engine.a в Preferences/Linker/ Дополнительные зависимости, я добавил в Preferences/Linker/Command Line -l"engine"

С этим, наконец, удалось найти проект и engine.a

Надеюсь, это поможет кому-то еще.:)

Для тех, кто наткнулся на эту проблему:

  1. Добавьте каталог, в котором находитсяLinker -> General -> Additional Library Directories. Проект, который вы компилируете, также должен бытьDynamic Library .soчтобы линкер был доступен. Это добавляет-Lфлаг в командной строке
  2. вLinker -> Command Lineдобавить свой.soкAdditional Optionsс-lфлаг с кавычками, например-l"MyDynamicLibraryWithoutLibPrefixAndExtension". В моем случае я хотел связатьlibassimp.so->-l"assimp"
Другие вопросы по тегам