Android-编译FreeImage For Android


要在一个Android项目里使用FreeImage库,所以移植到Android中 最麻烦的也是最核心的就是这个MakeFile,R5编译有问题,正好R6诞生了 编译的过程中出现了无法找到‘swab’方法的错误,有人提交了一个path解决了这个问题 点击下载
编译过程中遇到 lstdc++ 无法找到的情况,所以LIBRARIES就写死了:LIBRARIES =  -L $(SYSROOT)/usr/lib/ -lstdc++   include Makefile.srcs
NDK_ROOT=/home/dino/android-ndk-r6 SYSROOT=$(NDK_ROOT)/platforms/android-8/arch-arm/ CC="$(NDK_ROOT)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc" CXX="$(NDK_ROOT)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++"
# Converts cr/lf to just lf DOS2UNIX = dos2unix
LIBRARIES =  -L $(SYSROOT)/usr/lib/ -lstdc++ 
MODULES = $(SRCS:.c=.o) MODULES := $(MODULES:.cpp=.o) CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS --sysroot=$(SYSROOT) CFLAGS += $(INCLUDE) CFLAGS += -nostdlib --sysroot=$(SYSROOT) -fno-short-enums  CFLAGS += -I"$(NDK_ROOT)/platforms/$(NDK_PLATFORM)/arch-arm/usr/include" -I"$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/include/" -I"$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include" CFLAGS += -DANDROID CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=neon
CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy --sysroot=$(SYSROOT) CXXFLAGS += $(INCLUDE) CXXFLAGS += -nostdlib --sysroot=$(SYSROOT) -fno-short-enums  CXXFLAGS += -I"$(NDK_ROOT)/platforms/$(NDK_PLATFORM)/arch-arm/usr/include" -I"$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/include/" -I"$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include" CXXFLAGS += -DANDROID CXXFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=neon
#ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64) #CFLAGS += -fPIC #CXXFLAGS += -fPIC #endif
TARGET  = freeimage STATICLIB = lib$(TARGET).a SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so LIBNAME= lib$(TARGET).so VERLIBNAME = $(LIBNAME).$(VER_MAJOR) HEADER = Source/FreeImage.h


default: all
all: dist
dist: FreeImage cp *.a Dist cp *.so Dist cp Source/FreeImage.h Dist
dos2unix: @$(DOS2UNIX) $(SRCS) $(INCLS)
FreeImage: $(STATICLIB) $(SHAREDLIB)
.c.o: $(CC) $(CFLAGS) -c $< -o $@
.cpp.o: $(CXX) $(CXXFLAGS) -c $< -o $@
$(STATICLIB): $(MODULES) $(AR) r $@ $(MODULES)
$(SHAREDLIB): $(MODULES) $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
install: install -d $(INCDIR) $(INSTALLDIR) install -m 644 -o root -g root $(HEADER) $(INCDIR) install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) ldconfig

相关内容