Android NDK链接器错误';对std::ios#u base'的未定义引用;使用FreeImage时
我正在尝试静态链接Android NDK的libfreeimage.a开放框架构建(使用本机活动示例作为模板) 当我编译并链接我的项目时,我会遇到很多链接器错误,具体如下: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:
../../../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引用吗?如果是,如何添加?我们将非常感谢您的帮助