IOS makefile

#makefile for iOS

#SDK7.1
DEVELOPER=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
IPHONESDK=$(DEVELOPER)/SDKs/iPhoneOS7.1.sdk


#SDK6.0
#DEVELOPER=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
#IPHONESDK=$(DEVELOPER)/SDKs/iPhoneOS6.0.sdk


#SDK5.1
#DEVELOPER=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
#IPHONESDK=$(DEVELOPER)/SDKs/iPhoneOS5.1.sdk


#SDK5.0
#DEVELOPER=/Developer/Platforms/iPhoneOS.platform/Developer
#IPHONESDK=$(DEVELOPER)/SDKs/iPhoneOS5.0.sdk


#CC=$(DEVELOPER)/usr/bin/arm-apple-darwin10-llvm-gcc-4.2
#CC=$(DEVELOPER)/usr/bin/arm-apple-darwin10-llvm-g++-4.2
CC=g++


PLATFORM=IOS
export PLATFORM


GLOBAL_CCXXFLAGS:= -g -DUNICODE -D_UNICODE
export GLOBAL_CCXXFLAGS

#IOS CPU
IOS_ARCH= armv6 armv7 armv7s i386
#IOS_ARCH= armv7
export IOS_ARCH
#################################
#目标文件
OBJS +=libtest.o
PROG = libtest
DLIB = libtest.so
LIB = libtest.a


#################################
#包含头文件
INCPATH += -I./
INCPATH += -I./include/
INCPATH += -I./Common/
INCPATH += -I$(IPHONESDK)/usr/include/
INCPATH += -I$(IPHONESDK)/usr/include/c++/4.2.1/
INCPATH += -I$(IPHONESDK)/usr/include/c++/4.2.1/armv7-apple-darwin10/


#################################
#包含库文件


LIBS += -lz


LIBS += -L$(IPHONESDK)/usr/lib/
LIBS += -L$(IPHONESDK)/usr/lib/system


#################################
#包含组件
DFLAGS = -isysroot $(IPHONESDK) $(INCPATH)
#export IOS_ARCH无效,需要加参数实现CFLAGS = $(DFLAGS) -arch armv6 -arch armv7 -arch armv7s -arch i386

#################################
AR = $(DEVELOPER)/usr/bin/ar
RANLIB = $(DEVELOPER)/usr/bin/ranlib


#################################
#生成


#格式为 xxx: $@:$<
#	"$@" 表示所有的目标集, 即本例中的"%.o"(hello.o)
#		 如果有多个目标,"$@"就是匹配于目标中模式定义的集合
#	"$<" 表示依赖目标中的第一个目标名字, 即本例中的"%.cpp"(hello.cpp)
#		 如果依赖目标是以模式(即"%")定义的,那么"$<"将是符合模式的一系列的文件集
#		 注意,其是一个一个取出来的
#	"$^" 表示所有的依赖目标集,以空格分隔
#		 如果在依赖目标中有多个重复的,那个这个变量会去除重复的依赖目标,只保留一份
#等价于
#hello.o : hello.cpp
#	$(CC) $(CFLAGS) $(LIBS) -c hello.cpp -o hello.o


#all: $(PROG) $(DLIB) $(LIB)
all: $(LIB)
	@echo $(OBJS)


#可执行程序
$(PROG): $(OBJS)
	@echo ---------------
	@echo $(PROG)
#	格式: gcc -o xxx xxx.cpp
	$(CC) -o $(PROG) $^ $(CFLAGS) $(LIBS)

#动态库
$(DLIB): $(OBJS)
#	格式: gcc -shared -fpic -o libxxx.so xxx.o
#	-fPIC: 位置无关代码(Position Independent Code)的首字母缩写, 保证编译生成的东西是地址无关的
#		在可执行程序装载该动态库时, 该库可以放在可执行程序内存里的任何地方
	$(CC) -fpic -shared $(CFLAGS) -o $(DLIB) $<


#静态库
$(LIB): $(OBJS)
#	格式: ar -cr libxxx.a xxx.o
	$(AR) -cr $(LIB) $<
	$(RANLIB) $@


#object文件
$(OBJS): %.o:%.cpp
#	格式: gcc -c xxx.cpp -o xxx.o
	$(CC) $(CFLAGS) -c $< -o $@


#################################
#清除
.PHONY: clean
clean:
#	加上"-"表示忽略错误继续执行
	-rm $(OBJS) $(PROG) $(DLIB) $(LIB)



 lipo -info libxxx.a   //查看库指令集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白錵錵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值