如何在Python';什么是LLVM绑定?

如何在Python';什么是LLVM绑定?,python,c,printf,llvm,llvm-py,Python,C,Printf,Llvm,Llvm Py,我正在使用Python为自定义语言生成代码 现在我想运行程序并检查它们的输出是否正常工作——但我无法确切地知道如何输出任何东西 是否有某种方法可以使用LLVM绑定写入stdout或文件 或者我需要从C库调用printf 我该怎么做这两件事中的任何一件 注意:我没有使用JIT/ExecutionEngine,因此LLVM不会自动找到printf函数。LLVM可以生成一个对象文件(.o),只要您正确定义它并链接到glibc(或者msvcrt,如果您在Windows上)。它们似乎还有一个名为llvm\

我正在使用Python为自定义语言生成代码

现在我想运行程序并检查它们的输出是否正常工作——但我无法确切地知道如何输出任何东西

是否有某种方法可以使用LLVM绑定写入stdout或文件

或者我需要从C库调用
printf

我该怎么做这两件事中的任何一件


注意:我没有使用JIT/ExecutionEngine,因此LLVM不会自动找到
printf
函数。

LLVM可以生成一个对象文件(
.o
),只要您正确定义它并链接到
glibc
(或者
msvcrt
,如果您在Windows上)。它们似乎还有一个名为
llvm\cbuilder
的库,作为
llvmpy
的一部分,可以帮助您实现这一点。他们甚至有一个只针对
printf()
的测试用例:

另一个选择是拥有自己的实用程序功能套件,包括一些打印功能。然后,可以将一个指针传递给一个表,该表将所有这些指针都传递给生成的函数。我喜欢这个解决方案是,它允许您在运行时加载生成的函数,避免实际链接(但您必须考虑重新定位)。
最后但并非最不重要的一点是,它始终是llvmpy示例的良好来源。

LLVM可以生成一个对象文件(
.o
),该文件应该能够链接到
printf()
,只要您正确定义它并链接到
glibc
(或者
msvcrt
,如果您在Windows上)。它们似乎还有一个名为
llvm\cbuilder
的库,作为
llvmpy
的一部分,可以帮助您实现这一点。他们甚至有一个只针对
printf()
的测试用例:

另一个选择是拥有自己的实用程序功能套件,包括一些打印功能。然后,可以将一个指针传递给一个表,该表将所有这些指针都传递给生成的函数。我喜欢这个解决方案是,它允许您在运行时加载生成的函数,避免实际链接(但您必须考虑重新定位)。
最后但并非最不重要的一点是,它始终是llvmpy示例的良好来源。

谢谢您的帮助-我相信
Github
url中的示例正是我所需要的。我实际上正在做类似的工作。如果你能在github或其他网站上分享结果,那就太好了。我会在打印出来的时候贴上一些东西D我现在正在尝试编写一个模块并将其链接到中。谢谢您-我相信
Github
url中的示例正是我所需要的。我实际上正在做类似的工作。如果你能在github或其他网站上分享结果,那就太好了。我会在打印出来的时候贴上一些东西我现在正试着写一个模块并把它连接起来。