我有一个简单的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并将所有依赖项链接在一起,以便不再存在外部依赖项?
答案 0 :(得分:1)
如何将所有依赖项编译为bitcode [..]
嗯,你需要编译它们。那就是你需要用从源代码(C和汇编)到llvm bitcode的clang编译依赖关系(glibc)。目前您正在链接已编译的代码(不能编译"未编译" /"转换为" LLVM bitcode,至少不是以合适的方式)。