美文网首页iOS
clang 编译器

clang 编译器

作者: 衣介书生 | 来源:发表于2018-01-08 13:29 被阅读0次

    由于自己对 clang 的了解也不是很深,这里只对自己平常用的一些命令进行一些适当的解释。

    编译生成可执行文件

    -o 指定了输出文件的名称

    clang hello.c -o hello
    

    得到 LLVM 字节码文件(不可读字节码文件)

    -O3: 表示使用编译优化级别3来编译程序
    -emit-llvm: 表示要通过 clang 得到 LLVM 的字节码文件(.bc)或者汇编文件(.ll)
    -c: 表示要得到字节码文件
    -o: 指定了输出文件的名称,字节码文件一般以 .bc 结尾

    clang -O3 -emit-llvm hello.c -c -o hello.bc
    

    llvm-dis

    用llvm-dis工具反汇编得到 LLVM 汇编文件(可读)

    llvm-dis hello.bc hello.ll
    

    得到 LLVM 汇编文件(可读)

    -S: 表示要得到汇编文件

    clang -O3 -emit-llvm hello.c -S -o hello.ll
    

    llvm-as

    用 llvm-as 工具通过汇编文件(.ll 文件)得到字节码文件(.bc 文件)

    llvm-as hello.ll hello.bc
    

    编译 cpp 文件

    clang++: 编译 .cpp 文件
    -Wall: 输出警告信息
    -g: 用于 gdb 调试
    -std: 编译的标准(-std=c++98、-std=c++03、-std=c++11、-std=c++0x)
    -stdlib: C++ 标准头文件

    clang++ -Wall -g -std=c++11 -stdlib=libc++ Hello.cpp -o hello
    clang++ -Wall -std=c++11 -stdlib=libc++ -emit-llvm -c Hello.cpp -o hello.bc
    

    相关文章

      网友评论

        本文标题:clang 编译器

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