llvm工具链生成的文件的标准文件扩展名是什么?

时间:2019-01-13 05:30:32

标签: clang llvm

我有以下代码和命令。

==> main.c <==
/* vim: set noexpandtab tabstop=2: */
#include <stdio.h>

void print();
int main() {
    print();
    return 0;
}

==> print.c <==
/* vim: set noexpandtab tabstop=2: */
#include <stdio.h>

void print() {
    puts("Hello World!");
}
$ clang -c -emit-llvm -o main.bc main.c
$ clang -c -emit-llvm -o print.bc print.c
$ llvm-link -o main1.bc  main.bc print.bc
$ lli main1.bc 
Hello World!

但是,我不确定应广泛使用的文件扩展名是什么。

我有main1.bcmain.bc,都具有.bc扩展名。但是,main1.bc可以与lli一起运行,并且由llvm-link生成。因此,最好使用main.bcprint.bc来区分它。

有人能让我知道公认的文件扩展名标准和推荐的命令行工作流程吗?谢谢。

1 个答案:

答案 0 :(得分:2)

llvm-link工具对LLVM位代码进行操作并输出相同的位代码,因此main.bcprint.bc之间没有区别。

文本LLVM IR的规范扩展名-.ll,编译为一个-.bc