版本 :3.17.0
下载地址:https://github.com/danoli3/FreeImage
包含的makeFile.iphone版本太旧,这里是修改过的makefile,执行make -f makefile.iphone
ps: 1)可对照下方内容更改原有makefile中需要改动的地方,可单行复制不要整体复制,否则格式有问题
2)
include Makefile.srcs #-std = c99也可以
CFLAGS = -g -O2 -Wall -Wmissing-prototypes -std=gnu99 -ffast-math -fno-strict-aliasing
CXXFLAGS = -g -O2 -Wall -fno-strict-aliasing #GCC_VERSION = 4.2 IPHONEOS_DEPLOYMENT_TARGET = 8.0 MACOSX_DEPLOYMENT_TARGET = 10.6 PLATFORM_SIM = iPhoneSimulator PLATFORM_PHONE = iPhoneOS ARCH_SIM = i686 ARCH_PHONE = arm64 DEVELOPER=/Applications/Xcode.app/Contents/Developer PLATFORM_SIM_DEVELOPER_BIN_DIR = $(DEVELOPER)/Platforms/$(PLATFORM_SIM).platform/Developer/usr/bin PLATFORM_PHONE_DEVELOPER_BIN_DIR = $(DEVELOPER)/Platforms/$(PLATFORM_PHONE).platform/Developer/usr/bin SDKROOT_SIM = $(DEVELOPER)/Platforms/$(PLATFORM_SIM).platform/Developer/SDKs/$(PLATFORM_SIM).sdk SDKROOT_PHONE = $(DEVELOPER)/Platforms/$(PLATFORM_PHONE).platform/Developer/SDKs/$(PLATFORM_PHONE).sdk #这里主要是加了-D__ANSI__ -D_GNU_SOURCE -DDISABLE_PERF_MEASUREMENT ,很关键 EXTRA_CFLAGS_SIM += -arch $(ARCH_SIM) -pipe -mdynamic-no-pic -fvisibility=hidden -D__ANSI__ -D_GNU_SOURCE -DDISABLE_PERF_MEASUREMENT $(INCLUDE) -isysroot $(SDKROOT_SIM) EXTRA_LDFLAGS_SIM += -arch $(ARCH_SIM) -isysroot $(SDKROOT_SIM) -Wl,-dead_strip EXTRA_CFLAGS_SIM += -D__IPHONE_OS_VERSION_MIN_REQUIRED=50000 -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) EXTRA_LDFLAGS_SIM += -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) # Xcode complains about the -mdynamic-no-pic with an Apple Mach-O Linker Warning, so removed #EXTRA_CFLAGS_PHONE += -arch $(ARCH_PHONE) -pipe -mdynamic-no-pic -fvisibility=hidden -D__ANSI__ $(INCLUDE) -isysroot $(SDKROOT_PHONE)
#同上 EXTRA_CFLAGS_PHONE += -arch $(ARCH_PHONE) -pipe -fvisibility=hidden -D__ANSI__ -D_GNU_SOURCE -DDISABLE_PERF_MEASUREMENT $(INCLUDE) -isysroot $(SDKROOT_PHONE) EXTRA_LDFLAGS_PHONE += -arch $(ARCH_PHONE) -isysroot $(SDKROOT_PHONE) -Wl,-dead_strip EXTRA_CFLAGS_PHONE += -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET) EXTRA_LDFLAGS_PHONE += -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET) AR_SIM = $(PLATFORM_SIM_DEVELOPER_BIN_DIR)/ar AR_PHONE = $(PLATFORM_PHONE_DEVELOPER_BIN_DIR)/ar #如果在xcode的目录下没有以下编译器,可以从/usr/bin中拷贝过来,或者直接更改此处编译器路径为/usr/bin CC_SIM = $(PLATFORM_SIM_DEVELOPER_BIN_DIR)/clang CC_PHONE = $(PLATFORM_PHONE_DEVELOPER_BIN_DIR)/clang CFLAGS_SIM = $(CFLAGS) $(EXTRA_CFLAGS_SIM) LDFLAGS_SIM = $(EXTRA_LDFLAGS_SIM) CXX_SIM = $(PLATFORM_SIM_DEVELOPER_BIN_DIR)/clang++ CXXFLAGS_SIM += $(EXTRA_CFLAGS_SIM) -fvisibility-inlines-hidden LIBTOOL_SIM = $(DEVELOPER)/Platforms/$(PLATFORM_SIM).platform/Developer/usr/bin/libtool CFLAGS_PHONE = $(CFLAGS) $(EXTRA_CFLAGS_PHONE) LDFLAGS_PHONE += $(EXTRA_LDFLAGS_PHONE) CXX_PHONE = $(PLATFORM_PHONE_DEVELOPER_BIN_DIR)/clang++ CXXFLAGS_PHONE += $(EXTRA_CFLAGS_PHONE) -fvisibility-inlines-hidden LIBTOOL_PHONE = $(DEVELOPER)/Platforms/$(PLATFORM_PHONE).platform/Developer/usr/bin/libtool TARGET = freeimage STATICLIB_SIM = lib$(TARGET)-iphonesimulator.a STATICLIB_PHONE = lib$(TARGET)-iphone.a HEADER = Source/FreeImage.h .SUFFIXES: .o-i686 .o-arm MODULES_ARM = $(SRCS:.c=.o-arm) MODULES_ARM := $(MODULES_ARM:.cpp=.o-arm) MODULES_i686 = $(SRCS:.c=.o-i686) MODULES_i686 := $(MODULES_i686:.cpp=.o-i686) default: all all: dist dist: FreeImage mkdir -p Dist cp *.a Dist/ cp Source/FreeImage.h Dist/ FreeImage: $(STATICLIB_SIM) $(STATICLIB_PHONE) $(STATICLIB_SIM): $(MODULES_i686) $(LIBTOOL_SIM) -arch_only i686 -o $@ $(MODULES_i686) .c.o-i686: $(CC_SIM) $(CFLAGS_SIM) -c $< -o $@ .cpp.o-i686: $(CXX_SIM) $(CXXFLAGS_SIM) -c $< -o $@ $(STATICLIB_PHONE): $(MODULES_ARM) $(LIBTOOL_PHONE) -arch_only $(ARCH_PHONE) -o $@ $(MODULES_ARM) .c.o-arm: $(CC_PHONE) $(CFLAGS_PHONE) -c $< -o $@ .cpp.o-arm: $(CXX_PHONE) $(CXXFLAGS_PHONE) -c $< -o $@ clean: rm -f core Dist/*.* u2dtmp* $(MODULES_i686) $(MODULES_ARM) $(STATICLIB_SIM) $(STATICLIB_PHONE)
