Objective c 没有Xcode的Cocoa项目

Objective c 没有Xcode的Cocoa项目,objective-c,xcode,macos,cocoa,makefile,Objective C,Xcode,Macos,Cocoa,Makefile,我正在使用Cocoa在MacOSX上编写一个示例应用程序 当我使用Xcode构建和调试时,一切都很好 但当我开始用makefile构建时,程序是一样的,每个文件都和diff显示的一样,输出是不同的 我的第一个问题:构建cocoa项目的这个makefile正确吗 生成的文件是: CLANG = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang LINK

我正在使用Cocoa在MacOSX上编写一个示例应用程序

当我使用Xcode构建和调试时,一切都很好

但当我开始用makefile构建时,程序是一样的,每个文件都和diff显示的一样,输出是不同的

我的第一个问题:构建cocoa项目的这个makefile正确吗

生成的文件是:

CLANG   = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang

LINK    = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang 

ARCH    = x86_64    
MIN_VERSION = 10.8

DEBUG_PATH  = bin/debug

SYSROOT = /Applications/Xcode.app/Contests/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/

IBTOOL  = /Applications/Xcode.app/Contents/Developer/usr/bin/ibtool

SDK = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk

FRAME   = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks

LIB = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/lib

FLAGS   = -g -O0

debug: $(DEBUG_PATH)/test.app

run:
    open $(DEBUG_PATH)/test.app

$(DEBUG_PATH)/test.app: $(DEBUG_PATH)/test
    cp $(DEBUG_PATH)/test $(DEBUG_PATH)/test.app/Contents/MacOS/test  
    cp  en.lproj/credits.rtf  $(DEBUG_PATH)/test.app/Contents/Resources/en.lproj
    cp  en.lproj/InfoPlist.strings $(DEBUG_PATH)/test.app/Contents/Resources/en.lproj
    cp PkgInfo $(DEBUG_PATH)/test.app/Contents/
    rm -f $(DEBUG_PATH)/test
    cp test-core-text-Info.plist $(DEBUG_PATH)/test.app/Contents/Info.plist
    touch $@

$(DEBUG_PATH)/test: $(DEBUG_PATH)/AppDelegate.o $(DEBUG_PATH)/main.o
    mkdir -p $(DEBUG_PATH)/test.app/Contents/MacOS/../Resources/en.lproj
    $(CLANG) -arch $(ARCH) -isysroot $(SYSROOT) -L$(DEBUG_PATH)/ -L$(LIB) -mmacosx-version-min=$(MIN_VERSION) AppDelegate.o main.o -framework Cocoa -o $@ -F $(FRAME)
    $(IBTOOL) --errors --warnings --notices --output-format human-readable-text --compile $(DEBUG_PATH)/test.app/Contents/Resources/en.lproj/MainMenu.nib en.lproj/MainMenu.xib --sdk $(SDK)

clean:
    rm -rf $(DEBUG_PATH)/test.app
    rm -f $(DEBUG_PATH)/*

$(DEBUG_PATH)/AppDelegate.o: src/AppDelegate.m
    $(CLANG) -arch $(ARCH) $(FLAGS) -Wall -c $< -o $@

$(DEBUG_PATH)/main.o:   src/main.m
    $(CLANG) -arch $(ARCH) $(FLAGS) -Wall -c $< -o $@
从任意位置输出Xcode运行应用程序

通过makefile输出

程序是一样的,Info.plist是一样的,nib是一样的,为什么输出是不同的,这对我来说仍然是个难题


我缺少什么?

你检查过你的版本吗?只是好奇:你为什么不想使用Xcode?@hussainShabbir:怎么做?在我们的构建中,我们使用makefile来构建而不是Xcode。还有,你为什么要编写makefile而不是使用Xcode构建?