有没有办法在llvm(* .ll)中编译一个使用C函数的文件?
我使用check C创建了一个测试,并将其编译为:
$clang counter_i.c counter_test_check.c -lcheck
这样,我正在使用check中的库,但我需要生成使用来自check的库的llvm代码。当我尝试这个命令时:
$clang -S -emit-llvm counter_i.c counter_test_check.c
并尝试执行代码:
$lli-mp-3.5 counter_test_check.ll
我收到了这个答案:
LLVM ERROR: Program used external function 'srunner_create' which could not be resolved!
我认为解决方案是做一些事情:
$clang -S -emit-llvm counter_i.c counter_test_check.c -lcheck
但它不受支持。
上可以找到类似的答案答案 0 :(得分:3)
是的,LLVM有一个C接口(尽管与C ++ API相比可能存在一些限制):
答案 1 :(得分:1)
我找到了一个解决方案:
clang -S -emit-llvm -c counter_test_check.c counter_i.c
clang -o executable counter_test_check.ll counter_i.ll -lcheck
./executable
它通过两个步骤进行编译,这样我就可以使用其他llvm源文件。