我正在尝试针对 Android NDK 的 libfreeimage.a 的开放框架构建静态链接(使用本机活动示例作为模板)。
当我编译和链接我的项目时,我得到了很多链接器错误:
../../../lib/ndk/armeabi-v7a/libfreeimage.a(ImfTimeCodeAttribute.o): In function
global constructors keyed to ImfTimeCodeAttribute.cpp':
ImfTimeCodeAttribute.cpp:(.text+0x28): undefined reference to
std::ios_base::Init::Init()'
我相信这是一个范围界定问题,可以通过向代码添加命名空间或在 gcc 上使用 g++ 来解决。我认为 -lstdc++ 会解决问题,但它没有。
任何帮助将不胜感激。
安卓.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)