pypy生成的C代码入口点在哪里

2 投票
2 回答
551 浏览
提问于 2025-04-16 07:07

我正在使用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生成的代码的入口点在哪里呢?感谢你的阅读。

2 个回答

1

PyPy 可能没有给你一个“主”函数,因为你的 Python 代码里其实没有一个入口点。你应该在文件的最后加上

main()

2

这不对。你可以搜索一下 pypy_g_entry_point。这里的 main() 函数可能被内联了,所以你找不到它。如果你想让它显示出来,可以使用 --inline-threshold=0 作为翻译参数。

撰写回答