Welcome 微信登录

首页 / 操作系统 / Linux / 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-r6SYSROOT=$(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 lfDOS2UNIX = 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 += -DANDROIDCFLAGS += -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 += -DANDROIDCXXFLAGS += -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  = freeimageSTATICLIB = lib$(TARGET).aSHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).soLIBNAME= lib$(TARGET).soVERLIBNAME = $(LIBNAME).$(VER_MAJOR)HEADER = Source/FreeImage.h


default: all
all: dist
dist: FreeImagecp *.a Distcp *.so Distcp 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