从命令行编译 .m Objective-C 文件

5
在过去,我可以使用以下命令编译Objective-C的.m文件:
$ gcc -fobjc-gc-only -framework Foundation sample.m
$ ./a.out

但现在它不起作用了,因为程序很有可能已经出现了问题。
@autoreleasepool { ... }

条款。如何在命令行上编译Objective-C?


1
也许获得你想要的确切信息最简单的方法是在Xcode中构建它,然后查看构建输出。 - mah
2个回答

9

我刚刚尝试了 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
对于Arc环境,请使用“-fobjc-arc”。 - Inder Kumar Rathore

1

xcodebuild 是XCode IDE在幕后使用的构建你的应用程序的工具,也是在CI服务器等场景中通过命令行启动构建的工具。它使用你的.xcproj或.xcworkspace文件来确定需要构建的内容,所以这可能对你来说仍然太高级了。

如果是这种情况,那么在xcodebuild下面就是clang和llvm。Clang 取代了gcc,并且有一定的向后兼容性,因此我认为这将是你想要开始的地方。


没错,clang 可以工作。我想 xcodebuild 只是在 clang 和苹果 llvm 之上的一个薄层。我很想知道如何从命令行编译 任何 xcode 项目。 - OTZ
大致上是这样的。xcodebuild就像make,clang就像gcc,所以开始使用xcodebuild来编译任何xcode项目。它真的非常容易操作。我经常编写Jenkins shell脚本来构建特定配置的xcode项目。 - Michael
是的,我稍微尝试了一下xcodebuild,它做得很好。但与make相比,我对该工具的在线文档、实用教程、技巧等方面的匮乏感到失望。我想人们只是使用Xcode来构建项目,这在某种程度上是可以的,但我想知道事情实际上是如何构建的。感谢您的回答。 - OTZ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接