是否可以将 C 代码与 llvm 位代码链接?

发布于 2024-12-27 17:01:23 字数 98 浏览 2 评论 0原文

我有一个 llvm 位代码文件,其中包含一些有用的函数。我想从c代码中调用它。是否可以将此 C 代码与 llvm 位代码链接以生成可执行文件? 或者我必须通过 JIT 调用该函数。

I have an llvm bitcode file containing some useful functions. I want to call it from c code. Is it possible to link this c code with llvm bitcode to generate an executable?
Or I have to call the function through JIT.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绅刃 2025-01-03 17:01:23

LLVM 位码必须可执行才能从 C 调用。您至少有两个选择:

  1. 在调用位码之前对其进行 JIT 编译。
  2. llc 位码并将目标文件与 C 目标文件进行汇编/链接。

    1. 可能更容易做到。

The LLVM bitcode has to be made executable to be called from C. You have at least two choices:

  1. JIT compile the bitcode before you call it.
  2. llc the bitcode and assemble/link the object file with your C object files.

    1. is probably easier to do.
魔法唧唧 2025-01-03 17:01:23

基本上答案是肯定的,假设您没有使用某些未提及的运行时 C 语言解释器。通常,C 必须编译成某种东西,llvm 工具为您提供了目标处理器的位码和汇编语言两种选择。 C 可以转换为位码,并且所有组件都位于同一个可执行二进制文件中。从那里您可以获取所有这些部分并将它们转换为特定目标的汇编语言。

Basically the answer is yes, assuming you are not using some unmentioned runtime C language interpreter. Typically the C has to be compiled to something, the llvm tools give you two choices bitcode and assembly language for a target processor. The C can be turned into bitcode and you have all components in the same executable binary. From there you can take all of these parts and take them to assembly language for a particular target.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文