我正在努力熟悉LLVM&为一个项目而奋斗,我会在那里进行不同的优化。因此,我不仅需要通过clang与LLVM进行交互,还要使用opt& LLC。现在我没有将一个非常基本的例子与C库的使用联系起来。
代码(main.c):
#include<stdio.h>
int main() {
printf("hallo");
}
LLVM Flow&amp; ld作为链接器:
clang -c -emit-llvm main.c
opt -O3 main.bc -o optimized.bc
llc -march=x86-64 -filetype=obj optimized.bc -o prog.o
ld --verbose -static -lc prog.o -o prog --entry main
ld的错误输出:
...
attempt to open //usr/local/lib/x86_64-linux-gnu/libc.a failed
attempt to open //lib/x86_64-linux-gnu/libc.a failed
attempt to open //usr/lib/x86_64-linux-gnu/libc.a succeeded
attempt to open prog.o succeeded
prog.o
prog.o: In function `main':
optimized.bc:(.text+0xc): undefined reference to `printf'
我对此错误感到困惑:
一个更加愚蠢的C程序链接,但给了我一个分段错误&amp;执行。
代码:
int main() {
int a = 5;
}
这让我想知道我是否在做一些根本性的错误...
THX!