Android NDK链接器错误';对std::ios#u base'的未定义引用;使用FreeImage时

Android NDK链接器错误';对std::ios#u base'的未定义引用;使用FreeImage时,android,linker-errors,android-ndk,freeimage,Android,Linker Errors,Android Ndk,Freeimage,我正在尝试静态链接Android NDK的libfreeimage.a开放框架构建(使用本机活动示例作为模板) 当我编译并链接我的项目时,我会遇到很多链接器错误,具体如下: ../../../lib/ndk/armeabi-v7a/libfreeimage.a(ImfTimeCodeAttribute.o):在函数中,键入ImfTimeCodeAttribute.cpp'的全局构造函数: ImfTimeCodeAttribute.cpp:(.text+0x28):对std::ios_base:

我正在尝试静态链接Android NDK的libfreeimage.a开放框架构建(使用本机活动示例作为模板)

当我编译并链接我的项目时,我会遇到很多链接器错误,具体如下:


../../../lib/ndk/armeabi-v7a/libfreeimage.a(ImfTimeCodeAttribute.o):在函数
中,键入ImfTimeCodeAttribute.cpp'的全局构造函数:
ImfTimeCodeAttribute.cpp:(.text+0x28):对std::ios_base::Init::Init()的未定义引用

我相信这是一个范围问题,可以通过在代码中添加名称空间或在gcc上使用g++来解决。我原以为-lstdc++可以解决这个问题,但事实并非如此

任何帮助都将不胜感激

Android.mk:


LOCAL_PATH := $(call my-dir)/tmp

include $(CLEAR_VARS)

LOCAL_MODULE := androidapp

LOCAL_CFLAGS := -DFREEIMAGE_LIB\
                -DANDROID_NDK \
                -DDISABLE_IMPORTGL \
                -mfpu=vfp -mfloat-abi=softfp \
                -ffast-math -O3 -DFPM_ARM

LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -lstdc++ -ldl
LOCAL_STATIC_LIBRARIES := android_native_app_glue

LOCAL_LDLIBS += ../../../lib/ndk/armeabi-v7a/libfreeimage.a

LOCAL_ARM_MODE := arm

SRC-FILES := $(wildcard tmp/*.c*)
SRC-FILES := $(SRC-FILES:tmp/%=%)
LOCAL_SRC_FILES += $(SRC-FILES)

APP_OPTIM := release
APP_ABI := armeabi-v7a

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)

最终解决了这个问题-对于其他有相同问题的人,修复方法是为库添加一个模块,然后包括库:


LOCAL_PATH := $(call my-dir)/tmp

include $(CLEAR_VARS)

LOCAL_MODULE    := freeimage
LOCAL_SRC_FILES := ../../../../lib/ndk/armeabi-v7a/libfreeimage.a
LOCAL_EXPORT_C_INCLUDES := ../../../../lib/inc

include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := androidapp

LOCAL_CFLAGS := -DFREEIMAGE_LIB\
                -DANDROID_NDK \
                -DDISABLE_IMPORTGL \
                -mfpu=vfp -mfloat-abi=softfp \
                -ffast-math -O3 -DFPM_ARM

LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -ldl -lstdc++
LOCAL_STATIC_LIBRARIES := android_native_app_glue

LOCAL_STATIC_LIBRARIES += freeimage

LOCAL_ARM_MODE := arm

SRC-FILES := $(wildcard tmp/*.c*)
SRC-FILES := $(SRC-FILES:tmp/%=%)
LOCAL_SRC_FILES += $(SRC-FILES)

APP_OPTIM := release
APP_ABI := armeabi-v7a

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)

我有完全相同的问题,除了你的解决方案没有帮助。您还做了其他什么来解决此问题吗?您成功添加了freeimage引用吗?如果是,如何添加?您成功添加了freeimage引用吗?如果是,如何添加?我们将非常感谢您的帮助