学习OC的语法建议还是用普通的编辑器写OC代码然后终端命令行编译运行。那我们来看一下是如何在命令行编译一个OC源文件,以及运行编译后的可执行文件

开发环境

操作系统macOS Big Sur
终端iTerm2 Build 3.4.8
clong: Apple clang version 13.0.0 (clang-1300.0.29.3)
编辑器:Atom : 1.60.0

操作示例

ccclang

他们是同一个命令cc只是能少输入个字符而于
在这里插入图片描述

编译链接

当前目标创建一个Hello.mm文件,并用atom打开文件

pwd
/Users/luogw/temp/test
touch Hello.m

在这里插入图片描述
Hello.m内容如下

#import <Foundation/Foundation.h>

int main(int argc, char * argv[]) {
	NSString * str = @"Hello, OC";
	NSLog(@"%@", str);
	return 0;
}

编译链接生成可执行文件

cc  Hello.m -framework Foundation
// framework指定链接库,我们使用了NSLog还有NSString,它们是Foundation库中定义

默认生成可执行文件是a.out
在这里插入图片描述

仅仅编译

cc -c oc代码文件

加-c即只编译源代码文件,输出中间态的目标文件,如下所示
在这里插入图片描述

自定义

使用自定义类的示例


#import <Foundation/Foundation.h>

//声明类
@interface Person : NSObject
{
}
@property(nonatomic, retain) NSString * name;
@property int age;
- (void) printInfo;
@end

//定义类
@implementation Person {
}
- (void) printInfo {
	NSLog(@"My name is %@, %d years old", _name, _age);
}
@end

int main(int argc, char * argv[]) {
	NSString * str = @"Hello, OC";
	NSLog(@"%@", str);

  Person *p = [[Person alloc]init];
	p.name = @"Eric";
	p.age  = 36;
	[p printInfo];
	return 0;
}

编译运行结果如下
在这里插入图片描述

man cc

man cc
//查看clang的具体说明/帮忙文档

在这里插入图片描述

原文地址:https://blog.csdn.net/SCHOLAR_II/article/details/128134251

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_32352.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注