Как использовать библиотеку pre_built

скажем, у меня есть этот кусок кода:

print.cpp

int print ()
{
return 10;
}

print.h

#ifndef PRINT_H
#define PRINT_H
int print(); // function prototype for add.h
#endif

Я скомпилировал в библиотеку вызов libTest.a

теперь, скажем, у меня есть этот файл AndroidMK

include $(CLEAR_VARS)
LOCAL_MODULE    := libtest
LOCAL_SRC_FILES := ../issmlib/libTest.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../include
include $(PREBUILT_STATIC_LIBRARY)

Конечно, есть и другие, например, общие, но предполагается, что все они работают нормально !!!
Я помещаю libTest.a в папку с именем issmlib, и она находится в моем проекте на том же уровне, что и папка jni.
Затем я помещаю файл print.h в папку с именем include.

теперь это мое главное

#include "com_lan_factorial_FacLib.h"#include "fac.h"
//extern long fac(long n);

JNIEXPORT jlong JNICALL Java_com_lan_factorial_FacLib_fac(JNIEnv *env, jclass clazz, jlong n)
{
fac *f = new fac();
jlong result = (jlong) (f->factorial(n));
delete(f);
return result + print();
}

так что он вычисляет результат и добавляет к нему 10.
Я не знаю, как использовать эту предварительно собранную библиотеку, нужно ли указывать #include «print.h», в который я ее поместил, но он жалуется, что реализации метода нет.
Когда я вынимаю его, он жалуется, что не было объявлено print ().

Это большая часть вопроса C ++, но, надеюсь, вы можете помочь.
введите описание изображения здесь

Я считаю, что мой путь к Android.mk в порядке, но если вы заметили что-то странное, пожалуйста, дайте мне знать.
Большое спасибо.

0

Решение

Убедитесь, что у вас есть V=1 параметр на ndk-build командная строка. Таким образом, вы увидите фактические команды компиляции, подготовленные ndk-build. Это часто дает представление о том, что не так с определениями пути в Android.mk,

Если вам нужна помощь в интерпретации этого журнала, оставьте здесь комментарий и отредактируйте вопрос, включив в него полный журнал сборки и полный Android.mkвключая часть, которая вызывает BUILD_SHARED_LIBRARY

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector