我使用命令编译了.S文件:
clang-8 -c funcs.s -o funcs.o -emit-llvm我发现,.o文件是以ELF格式生成的。我希望看到llvm格式(在结果文件的开头有"BC“字符)。
似乎,Clang忽略了"-emit-llvm“标志。
发布于 2019-05-15 10:15:14
对于这个问题,asm源文件和二进制可执行文件/对象文件基本上是等价的。你还在努力把它解压缩到LLVM。这很难,我不知道是否存在反编译器。
似乎,Clang忽略了"-emit-llvm“标志。
不,它只是不影响你让它做的操作中的任何步骤。
您要求编译器编译为.o,所以它这样做了。
如果输入是.c,输出是.s,那么它就能够发出LLVM-IR,但在这种情况下,LLVM并不是将.s组装到.o的过程的一部分。
因此,在clang运行时,程序的LLVM表示从未存在过,因此没有什么可发出的。
https://stackoverflow.com/questions/56145015
复制相似问题