2013-09-22 65 views
4

在过去,我可以编译编译通过命令行的.m目标-C文件

$ gcc -fobjc-gc-only -framework Foundation sample.m 
$ ./a.out 

Objective-C的.m文件但现在不工作,因为有很高的机会程序有

@autoreleasepool { ... } 

子句。现在如何在命令行上编译Objective-C?

+1

也许最简单的方法来获得你想要的确切信息是在Xcode中构建它,然后看看构建输出。 – mah

回答

6

所以我刚试了clang,结果很好。

$ clang -fobjc-gc-only -framework Foundation sample.m 
$ ./a.out 
2013-09-22 20:17:57.150 a.out[19858:903] Hello world.  

结案! :)

+1

弧环境使用'-fobjc-arc' –

1

xcodebuild是XCode IDE在底层构建应用程序时所使用的内容,以及您在CI服务器等事物中使用的功能,以从命令行启动构建。它使用.xcproj或.xcworkspace文件来确定要构建的内容,因此对您而言可能仍然太高。

在这种情况下,xcodebuild下是clang和llvm。 Clang取代了gcc,并且有点向后​​兼容,所以这将是你想要开始的地方,我会想。

+0

是的,铛工作。我想xcodebuild是clang和apple llvm之上的一个薄层。我很想知道如何从命令行编译任何* xcode项目。 – OTZ

+0

非常。 xcodebuild就像make和clang是gcc,所以开始玩xcodebuild来编译任何xcode项目。开车真的很容易。我一直编写Jenkins shell脚本来构建xcode项目到特定的配置。 – Michael

+0

是的,我用xcodebuild玩了一下,它完成了它的工作。我对在线文档稀缺,实用教程,技巧感到失望。但不同于工具的制作。我想人们只是使用xcode来构建一个项目,尽管这样做很好,但我想知道事情是如何构建的。感谢您的回答。 – OTZ