2010-11-16 73 views
2

入口点的C代码生成的我使用PyPy翻译一些Python代码为C代码。我写了一个非常简单的脚本如下:哪里是pypy

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生成的代码的入口点在哪里。 谢谢您的阅读。

回答

1

PyPy很可能无法给你一个“主”功能,因为你其实并不在你的Python代码的入口点。您应该只需在文件末尾添加

main() 

2

这是不正确。 grep for pypy_g_entry_point。在这个例子中main()函数可能被内联,所以你不会得到它。如果你想让它被渲染,使用--inline-threshold = 0作为翻译参数。

+0

谢谢你的回答。我试过用inline-threshold = 0作为你说的翻译参数。但是我仍然无法在生成的C代码中找到main()函数。 – huangcd 2010-11-17 01:43:54

+0

它会被称为pypy_g_main,生活在implement.c – fijal 2010-11-17 06:41:27

+0

谢谢你,我想我已经在某种程度上解决了我的问题。主函数在main.h文件中定义为PYPY_MAIN_FUNCTION – huangcd 2010-11-17 07:49:45