Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何从多个源生成单个LLVM IR_C_Gcc_Clang_Llvm_Llvm Gcc - Fatal编程技术网

C 如何从多个源生成单个LLVM IR

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库 通过这个例子,我

将.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不会执行链接,因此,它不需要任何库-它只需要标题。

那么在这种情况下,我应该如何使用
-lssl-lcrypto
执行IR链接?@cache最好的方法是让clang进行链接-将您的IR文件作为输入之一提供给它。如果你安装了黄金链接器,你也可以直接链接,这样你也可以享受一些链接时间优化。谢谢!但正如我所说的,如果你能把更多的细节和重点放在我提供的例子上。这可能是ppl学习的最佳方式。@Oak那么,您能否给出详细命令,将上述内容写入IR并正确链接这些标志?