de référence non définie à `get_int() »lien Android NDK à la bibliothèque statique
Je suis en train de construire la bibliothèque partagée dans Android. Cette bibliothèque utilise des fonctions de la bibliothèque statique prédéfinie "libATest.a" J'ai essayé toutes les méthodes que je peux utiliser. Toujours eu l'erreur "référence non définie à` get_int() '", mais je l'ai défini dans libAtest.a. Appeler à l'aide! applications NDK r8
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ATest
LOCAL_SRC_FILES := libATest.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := capi
LOCAL_SRC_FILES := capi.cpp
LOCAL_STATIC_LIBRARIES := ATest
LOCAL_LDLIBS := -llog
#LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
include $(BUILD_SHARED_LIBRARY)
atest.h:
Application.mk:
APP_MODULES :=capi
capi.cpp:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <jni.h>
#include <string.h>
#include <android/log.h>
#include "atest.h"
#ifdef __cplusplus
extern "C" {
#endif
jstring Java_com_wzh_test_AndriodJNITestActivity_ttstest(JNIEnv* env, jobject thiz){
get_int();
return env->NewStringUTF("I'm from C!");
}
#ifdef __cplusplus
}
#endif
libATest.a:
#include "atest.h"
int get_int(){
return 55;
}
Après avoir ajouté le "C" externe au fichier .h et .a, obtenant l'erreur "référence non définie à' get_int '". Aide de GOD! – Qiengo
Juste remarqué le deuxième problème ... édité la réponse – nneonneo
Malheureusement, j'ai hava à utiliser libATest.a, qui est fourni par une autre société et je ne peux pas obtenir le code source.Maintenant, je fais un test, alors je viens de construire une bibliothèque simplement statique nommée "libATest.a". – Qiengo