将 .c 文件编译为单个 LLVM IR 并在编译期间链接多个库。
此处使用 gcc 的示例:
gcc -c -Wall -g3 -DVERSION=\"1.1.2\" ssl_proxy.c -o ssl_proxy.o
gcc -o ssl_proxy ssl_proxy.o -lssl -lcrypto
现在,我想将 ssl_proxy.c
编译为 ssl_proxy.ll
,只需使用 llvm-gcc -S -emit-llvm
不起作用,因为它不允许我链接 -lssl -lcrypto
库。
通过这个例子,我希望人们能够解释更多关于使用llvm-gcc
(而不是clang)进行编译的细节,以便所有访问者都可以从中学习并知道如何将复杂的多个源编译为一个 LLVM IR。
最佳答案
将源文件编译到 LLVM IR 中不会执行链接,因此不需要任何库 - 它只需要 header 。
关于c - 如何从多个源生成单个 LLVM IR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410867/