美文网首页
1.编译过程都做了什么事情

1.编译过程都做了什么事情

作者: aofeilin | 来源:发表于2018-09-13 18:08 被阅读39次

    .编译过程都做了什么事情

    1.C++ OC都是编译语言,编译语言在执行时候,先通过编译器生成机器码,机器码可以直接

    在CPU上执行。

    2.编译 apple 编译前端 clang 语法分析,语义分析

    编译后端,生成机器无关的代码优化。

    1. objc. https://www.objccn.io/issue-6-1/

    编译过程做了什么事情:

    1.https://www.jianshu.com/p/b027a8c4c3a3

    1. com+b 点击消息,点击build,查看编译信息,

    1.如果工程有第三方依赖库,首先会build依赖库target,然后build主target。

    compile各个.m文件

    copy静态资源,包括img,string,font。

    compile xib

    compile storyboard

    compile asset catalogs

    process info.plist

    link storyboards

    run custom script

    touch app

    sign app

    validate app(真机build有)

    3.黏贴complies 一行可以看到CompileC这个文件,

    可以看到 -W -c path/main.m -o path/main.o 对应类的编译输出.o

    libtool:产生 lib 的工具 构建库

    4.https://www.cnblogs.com/lilylee/p/4053926.html

    下面的命令用了有一段时日了,下次试一下确认一下如果有错再来编辑原文吧(果然有更新,修改一次)。

    利用llvm-gcc很容易得到中间码IR:

    llvm-gcc -emit-llvm -c hello.c -o hello.bc (先编译二进制码)

    llvm-dis hello.bc (llvm-dis出来的就是IR)

    好像llvm-gcc -S -emit-llvm test.c -o test.ll 也是中间码。 .ll的后缀是中间码

    利用objdump可以得到机器码:

    objdump -S test.o (这里的-S一定是大写)

    相关文章

      网友评论

          本文标题:1.编译过程都做了什么事情

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