2010-11-16 76 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