编译并链接所有依赖项到LLVM bitcode

时间:2016-08-21 19:26:17

标签: c compilation clang llvm

我有一个简单的C程序,它几乎是一个hello world程序,它使用两个外部函数:printf和strcpy。该程序具有以下依赖项:

strtol(message+13, &ptr,10)

我想将程序和所有依赖项编译为LLVM bitcode。如果我通过ldd app linux-vdso.so.1 => (0x00007fff36cc4000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4b81932000) /lib64/ld-linux-x86-64.so.2 (0x00007f4b81d2a000) 编译它不会编译依赖项,如果我编译没有clang -c -emit-llvm app.c,我会收到以下错误:-c

如何将所有依赖项编译为bitcode并将所有依赖项链接在一起,以便不再存在外部依赖项?

1 个答案:

答案 0 :(得分:1)

  

如何将所有依赖项编译为bitcode [..]

嗯,你需要编译它们。那就是你需要用从源代码(C和汇编)到llvm bitcode的clang编译依赖关系(glibc)。目前您正在链接已编译的代码(不能编译"未编译" /"转换为" LLVM bitcode,至少不是以合适的方式)。