Я использую кроссплатформенные инструменты Visual C++ для Android, как описано здесь: https://msdn.microsoft.com/en-us/library/dn707591.aspx
Пока все работает нормально (я могу создавать и запускать на своем телефоне шаблоны в разделе «Файл» -> «Новый проект» -> «Кросс-платформа» -> Android). Однако я не могу понять, как связать свое приложение с готовой общей библиотекой в виде файла *.so.
До сих пор я пробовал следующие шаги:
Шаг 1
Чтобы проверить способность Visual Studio связываться с готовой общей библиотекой, я создал небольшую общую библиотеку следующим образом:
Общая библиотека.cpp:
#include "SharedLibrary.h"
const char * SharedLibrary::GetString()
{
return "Hello from Shared Library";
}
void SharedLibrary()
{
}
SharedLibrary::SharedLibrary()
{
}
SharedLibrary::~SharedLibrary()
{
}
Общая библиотека.h:
#pragma once
class SharedLibrary
{
public:
const char * GetString();
SharedLibrary();
~SharedLibrary();
};
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := SharedLibrary
LOCAL_SRC_FILES := SharedLibrary.cpp
include $(BUILD_SHARED_LIBRARY)
Шаг 2
Затем я скомпилировал эту общую библиотеку с помощью команды ndk-build, которая дает мне файл libSharedLibrary.so.
Шаг 3
Затем я создал проект Visual Studio: File -> New -> Project -> Cross Platform -> Android -> Basic Application (Android, Ant). Этот проект компилируется и работает нормально.
Шаг 4
На следующем шаге я застрял: мне нужно каким-то образом связать файл libSharedLibrary.so с проектом Visual Studio. Я не смог найти ничего в параметрах проекта проекта Visual Studio, что позволило бы мне это сделать.
Итак, вот мой вопрос: как мне настроить кроссплатформенный проект Android на Visual C++, чтобы связать с ним общий объект (*.so)?
Это мой первый пост о стеке, поэтому не стесняйтесь исправлять меня, если я сделал что-то не так в своем посте.