【问题标题】:Where is the entry-point of the C code generating by pypypypy生成的C代码入口点在哪里
【发布时间】:2010-11-16 01:41:53
【问题描述】:

我正在使用 PyPy 将一些 python 代码转换为 C 代码。我写了一个非常简单的脚本如下:

def main():
    print "hello world!"

def entry_point(argv):
    main()
    return 0

def target(*args):
    return entry_point, None

然后我使用了translate.py --source test.py。它确实成功生成了 C 代码。当我make 那些代码时,它生成了一个可执行文件test-c。但是我无法使用grep 在这些代码中找到主函数,所以我想知道 pypy 生成的代码的入口点在哪里。 感谢您的阅读。

【问题讨论】:

    标签: python c entry-point pypy


    【解决方案1】:

    这是不正确的。对 pypy_g_entry_point 进行grep。 main() 函数很可能在这个例子中被内联,所以你不会得到它。如果您希望它被渲染,请使用 --inline-threshold=0 作为翻译参数。

    【讨论】:

    • 感谢您的回答。正如您所说,我已尝试使用 --inline-threshold=0 作为翻译参数。但是我仍然无法在生成的 C 代码中找到 main() 函数。
    • 它将被称为 pypy_g_main 并存在于 implement.c 中
    • 谢谢,我想我已经以某种方式解决了我的问题。 main函数在main.h文件中宏定义为PYPY_MAIN_FUNCTION
    【解决方案2】:

    PyPy 可能没有为您提供“主”函数,因为您的 Python 代码中实际上没有入口点。您可能应该添加

    main()
    

    在文件末尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多