C 如何从多个源生成单个LLVM IR
将.c文件编译到单个LLVM IR,并在编译过程中链接多个库 以下是gcc的一个示例:C 如何从多个源生成单个LLVM IR,c,gcc,clang,llvm,llvm-gcc,C,Gcc,Clang,Llvm,Llvm Gcc,将.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库 通过这个例子,我
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不会执行链接,因此,它不需要任何库-它只需要标题。那么在这种情况下,我应该如何使用-lssl-lcrypto
执行IR链接?@cache最好的方法是让clang进行链接-将您的IR文件作为输入之一提供给它。如果你安装了黄金链接器,你也可以直接链接,这样你也可以享受一些链接时间优化。谢谢!但正如我所说的,如果你能把更多的细节和重点放在我提供的例子上。这可能是ppl学习的最佳方式。@Oak那么,您能否给出详细命令,将上述内容写入IR并正确链接这些标志?