我有两个c文件,并希望显示其链接位代码的红外线
link1.c
#include "link2.h"
int main() {
int a;
int b;
foo(a,b);
return 0;
}
link2.h
#include<stdio.h>
link2.c
#include "link2.h"
void foo(int a, int b) {
printf("%d\n", a);
printf("%d\n", b);
}
我执行了以下命令来获取bc文件。
clang -o0 -emit-llvm file1.c -c -o file1.bc
clang -o0 -emit-llvm file2.c -c -o file2.bc
llvm-link -o link.bc link1.bc link2.bc
当我尝试lli link.bc
和llvm-dis link.bc
时,它正确运行并显示链接的ll文件,但是当我使用opt link.bc -S -o link.ll
获取ll文件时,它只报告了分段错误。任何人都可以告诉我如何处理opt
?
答案 0 :(得分:0)
好像是因为版本兼容的选择问题。我应该使用3.5版本,但事实证明我使用的是3.4.2。