最近在看Objc的开发,虽然Xcode很好用,但是还是不太习惯这种大型的IDE开发。
于是自己尝试着在Terminal下面编译。
先是最简单的一段程序。
#import <Foundation/Foundation.h>
int main(int argc, const char *argv[])
{
NSLog(@"Hello, World!");
return 0;
}
直接 gcc helloworld.m,报错。
错误提示如下
Undefined symbols:
"___CFConstantStringClassReference", referenced from:
cfstring=Hello, World! in ccCxrkF8.o
"_NSLog", referenced from:
_main in ccCxrkF8.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
猜测也许没有加载库,于是换用gcc hellowld.m -lobjc编译,依然是同样的错误。
猜测可能lib的位置不对,于是find了一下“Foundation”这个framework的位置,用以下命令编译:
gcc helloworld.m -L/System/Library/Frameworks/Foundation.framework/
还是一样的错误。
无奈之下man gcc从头看到尾。又去google了一下gcc for macosx。发现有一个-framework的选项。尝试了一下。
gcc helloworld.m -framework Foundation
终于成功了。
2010-04-22 19:11:11.643 a.out[8932:903] Hello, World!
总结一下:macosx下面,objc的系统调用都是集成在framework里面的,要想编译的话,就必须用-framework选项将framework包含进来才行。
分享到:
相关推荐
第2章 Objective-C程序设计 2.1 编译并运行程序 2.1.1 使用Xcode 2.1.2 使用Terminal 2.2 解释第一个程序 2.3 显示变量的值 2.4 小结 2.5 练习 第3章 类、对象和方法 3.1 到底什么是对象 3.2 实例和方法 3.3 用于...
编译和运行Objective-C程序: 将上述代码保存为main.m文件。 打开Xcode并创建一个新的命令行工具项目。 将main.m文件添加到项目中。 确保项目设置正确无误,特别是编译器和链接器设置。 构建并运行项目。Xcode将...
此外,Objective-C也是为苹果iOS和OS X系统编写程序的语言,它能够编译和构建命令行功能、GUI以及领域框架。 Objective-C支持类、对象、继承、封装、多态等面向对象的特性,同时它还具有动态运行时特性,可以在运行...
因此,有必要利用有向图(在本程序中为四边形)及其相对于英语的频率来破解...默认情况下,破解程序使用 I/J 组合,但您可以使用命令行参数“-r”替换您选择的任何字母(例如 Q 或 V) 示例:'./crack -r Q < test.txt'
这个 Xcode 项目有一个(非常)简单的用 Objective-C 编写的用户界面,Java 中的游戏引擎文件,以及 一个 用于翻译 Java 文件并在构建期间编译它们的构建规则。 要构建此项目,首先安装 J2ObjC,然后编辑 Settings....
nib2objc是一个小巧的转换工具,可以将XIB文件自动转换为...使用的时候,首先下载的工程代码并用XCode编译一下,会生成一个命令行程序文件 nib2objc。然后如下所示执行转换 $ nib2objc WebView.xib > WebView.m
Xcode的Ice Builder Ice Builder for Xcode是一个命令行程序,可帮助将Slice文件编译为Xcode中的C ++或Objective-C。 它支持所有最新版本的Xcode。安装自制酒通过运行以下命令,使用Homebrew安装Ice Builder for ...
第 6 章 编译 Objective-C 第 7 章 编译 Fortran 程序 第 8 章 编译 Java 第 9 章 编译 Ada 程序 第 10 章 混合语言 第 11 章 国际化 第 12 章 连接和库 第 13 章 使用 GNU 调试器 第 14 章 make 和 Autoconf 第 15 ...
jazzy是一个命令行实用程序,可为Swift或Objective-C生成文档 关于 Swift和Objective-C项目均受支持。 与解析源文件不同, jazzy钩接到和以使用代码的表示及其注释来获得更准确的结果。 输出与WWDC 2014之后的苹果...
.m Objective-C源程序;预处理,编译,汇编 .i 预处理后的C文件;编译,汇编 .ii 预处理后的C++文件;编译,汇编 .s 汇编语言源程序;汇编 .S 汇编语言源程序;预处理,汇编 .h 预处理器文件;通常不出现在命令行上
如果您的应用程序严重依赖于多精度整数计算,那么使用面向 C 的库(例如 GMP)会更幸运。 但是,如果您只需要一点模算术,或者希望偶尔以最少的开发工作生成一个大素数,那么 BigInteger 类就是为您准备的。 项目...
.m Objective-C源程序;预处理,编译,汇编 .i 预处理后的C文件;编译,汇编 .ii 预处理后的C++文件;编译,汇编 .s 汇编语言源程序;汇编 .S 汇编语言源程序;预处理,汇编 .h 预处理器文件;通常不出现在命令行上
.m Objective-C源程序;预处理,编译,汇编 .i 预处理后的C文件;编译,汇编 .ii 预处理后的C++文件;编译,汇编 .s 汇编语言源程序;汇编 .S 汇编语言源程序;预处理,汇编 .h 预处理器文件;通常不出现在命令行上
Code Logging Creator(clc)是一个命令行实用程序,它读取Objective-C头文件并创建一个由越狱开发工具Theos编译的xm文件和/或与CaptainHook框架一起使用的mm文件。 它编写钩子方法并记录指定类的每个方法。 它可选...
这里主要介绍gdb的命令行使用,并以C程序为例。测试使用的计算机是Mac OS系统。 启动gdb 下面的有两个C文件。(并没有bug。我们使用gdb来查看程序运行的细节) 程序的一个为test.c,其中有
它是用Objective-C编写的,并且可以在OS X 10.6或更高版本上运行。 有关更多信息,请参见cliclick概述cliclick(“命令行界面单击”的简称)是一种用于从外壳程序/终端执行与鼠标和键盘相关的操作的工具。 它是用...
iOS BuildKit BuildKit是用于自动化iOS项目构建的模块化命令行界面。 BuildKit旨在减轻您配置连续集成环境和... 它与带有Objective-C和Swift项目的iOS7和iOS8 SDK兼容。 版本:0.0.6 依存关系 Ruby> 2.0 :BuildKit
jazzy是一个命令行实用程序,可为Swift或Objective-C生成文档关于Swift和Objective-C项目均受支持。相反,解析您的源文件, jazzy挂接到和使用代码及其对更准确的结果意见的代表。输出与WWDC 2014之后的Apple官方...
它是用Objective-C编写的,并且可以在OS X 10.9或更高版本上运行。 有关更多信息或下载已编译的二进制文件,请查看 作者:CarstenBlüm,网站: 用法 为了快速获得第一印象,这是调用cliclick -h时得到的: ...