学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > ios >

第四节 使用Makefile自动编译iPhone程序(2)

设置字体:
----------------------------------

#LDFLAGS += -framework WebCore
#LDFLAGS += -framework WebKit
#LDFLAGS += -framework SystemConfiguration
#LDFLAGS += -framework CFNetwork
#LDFLAGS += -framework MediaPlayer
#LDFLAGS += -framework OpenGLES
#LDFLAGS += -framework OpenAL
LDFLAGS += -F"$(IPHONESDK)/System/Library/Frameworks"
LDFLAGS += -F"$(IPHONESDK)/System/Library/PrivateFrameworks"
## 编译开关
CFLAGS  += $(INCPATH) \
        -std=c99 \
        -W -Wall \
        -funroll-loops \
        -Diphoneos_version_min=2.0 \
        -Wno-unused-parameter \
        -Wno-sign-compare
ifeq ($(DEBUG), y)
CFLAGS  += -O0 -g -DDEBUG_MUTEX
else
CFLAGS  += -O3 -DNDEBUG
ifeq ($(DEVEL), y)
CFLAGS  += -g
endif
endif
CFLAGS += -F"$(IPHONESDK)/System/Library/Frameworks"
CFLAGS += -F"$(IPHONESDK)/System/Library/PrivateFrameworks"
####################################################################################
BUILDDIR =./build/3.0
SRCDIR   =./Classes
RESDIR   =./Resources
###/////////////////////////////////////////////////////////////
###                        Source files
###/////////////////////////////////////////////////////////////
OBJS     = $(patsubst %.m,%.o,$(wildcard $(SRCDIR)/*.m))
OBJS    += $(patsubst %.m,%.o,$(wildcard ./*.m))
OBJS    += $(patsubst %.c,%.o,$(wildcard $(SRCDIR)/*.c))
OBJS    += $(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/*.cpp))
NIBS     = $(patsubst %.xib,%.nib,$(wildcard *.xib))
RESOURCES= $(wildcard $(RESDIR)/*)
APPFOLDER= $(TARGET).app
.PHONY: all
all: $(TARGET) bundle
$(TARGET): $(OBJS)
    $(LD) $(LDFLAGS) -o $@ $^
%.o:    %.m
    $(CC) -c $(CFLAGS) $< -o $@
%.o:    %.c
    $(CC) -c $(CFLAGS) $< -o $@
%.o:    %.cpp
    $(CXX) -x objective-c++ $(CFLAGS) $< -o $@
%.nib:  %.xib
    ibtool $< --compile $@
bundle: $(TARGET)
    @rm -rf $(BUILDDIR)
    @mkdir -p $(BUILDDIR)/$(APPFOLDER)
    @cp -r $(RESDIR)/* $(BUILDDIR)/$(APPFOLDER)
    @cp Info.plist $(BUILDDIR)/$(APPFOLDER)/Info.plist
    @echo "APPL" > $(BUILDDIR)/$(APPFOLDER)/PkgInfo
    mv $(NIBS) $(BUILDDIR)/$(APPFOLDER)
#    export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    @ldid -S $(TARGET)
    @mv $(TARGET) $(BUILDDIR)/$(APPFOLDER)/$(TARGET)_
install: bundle
    @ssh root@$(IP) "cd /Applications/$(APPFOLDER) && rm -R * || echo 'not found' "
    @scp -rp $(BUILDDIR)/$(APPFOLDER) root@$(IP):/Applications
    @ssh root@$(IP) "cd /Applications/$(APPFOLDER) ; ldid -S $(TARGET)_; killall SpringBoard"
    @echo "Application $(APPFOLDER) installed"
uninstall:
    ssh root@$(IPHONE_IP) 'rm -fr /Applications/$(APPFOLDER); respring'
    @echo "Application $(APPFOLDER) uninstalled, please respring iPhone"
install_respring:
    scp respring_arm root@$(IPHONE_IP):/usr/bin/respring
.PHONY: clean
clean:
    @rm -f $(OBJS) $(TARGET)
    @rm -rf $(BUILDDIR)

然后执行下面的make命令,我们就可以直接在 iPhone 上测试我们的程序了。
make install_respring
make
make install
----------------------------------
课程列表
重点难点
赞助链接