美文网首页
命令行编译第一个OC程序

命令行编译第一个OC程序

作者: simple_jie | 来源:发表于2016-07-04 23:37 被阅读0次

    初学可以以命令行编译运行单个文件的方式开始
    入口函数 main()方法。
    .c 文件为c语言文件, .m文件为oc文件
    可以混合编译

    C语言示例

    // C语言库 头文件导入
    #include <stdio.h>
    
    // 自定义头文件导入
    #include "test.h"
    
    int main() { //入口函数
        printf("***************\n");
        printf("**   hello  ***\n");
        printf("***************\n");
        return 0;
    }
    

    OC文件示例

    //区别于c语言导包的include
    #import <Foundation/Foundation.h>
    
    //类定义。注意一定要有父类
    @interface Car : NSObject
    {
        //访问权限。默认是protect
        @public
        //成员变量声明一定要在大空号内部
        int wheels;
        int speed;
    }
    
    //方法声明 ‘-’ 开始,小括号用于类型声明
     - (void)paint;
    
    @end //声明结束,和@interface成对出现 不能嵌套
    
    //类实现,注意不写父类
    @implementation Car
    
    //方法实现
    - (void)paint {
        //对象都用指针表示, 所以访问使用->
        NSLog(@"Car wheels=%d, speed=%d", self->wheels, self->speed);
    }
    
    //C语言方法可以出现在除了类声明的之外的任意位置
    void test1(Car* car) {
        [car paint];
    }
    
    @end //实现结束。其内部其实可以包含C语言方法
    
    //C语言方法可以出现在除了类声明的之外的任意位置
    void test(Car* car) {
        //OC方法调用,使用中括号包裹
        [car paint];
    }
    
    //程序入口
    int main()
    {
        //OC对象初始化
        Car *car = [Car new];
        
        //通过指针访问成员
        car->wheels = 4;
        car->speed = 120;
        test(car);
    }
    

    编译文件

    cc -c file.m -framework Foundation
    
    • -c 表示编译
    • file.m表示目标文件,可以列举多个,也可以用通配符表示*.m
    • -framework 之后列举所用到的标准库

    执行之后会在当前目录生成 file.o文件。

    cc  file.o -framework Foundation
    

    运行以上命令,链接程序,会生成a.out可执行文件
    当然也可以用 -o 参数指定输出文件名

    运行可执行文件

    ./a.out 
    

    编译和链接合一

    cc file.m -framework Foundation
    

    运行以上命令会直接生成a.out可执行文件

    相关文章

      网友评论

          本文标题:命令行编译第一个OC程序

          本文链接:https://www.haomeiwen.com/subject/tvkhjttx.html