我试图在cygwin上编译PyPy,当python试图打开刚刚用gcc编译的“externmod”文件时,编译就停止了。cygwin上gcc的问题是,它会自动将“.exe”附加到您正在编译的任何内容中,因此即使gcc被称为gcc -shared -Wl,--enable-auto-image-base -pthread -o /tmp/usession-release-1.8/shared_cache/externmod
,输出文件最终都是externmod.exe
。所以python试图打开/tmp/usession-release-1.8/shared_cache/externmod
,但是找不到它——因此编译停止了。除了重新编译gcc,有人知道如何解决这个问题吗?我不想那样做。在
Windows需要“.exe”扩展名才能知道它是可执行的。您需要修改生成以查找Windows并使用.exe扩展名。在
在做了一些修改之后,我成功地编译了它。在
您可以在http://www.tux.org/~mayer/cygwin/pypy上找到cygwin和说明的修补程序
为了回答您的问题,解决问题的最简单的方法是修改pypy/translator/platform中的init.py,使其指向一个实际的平台,而不是它现在得到的“None”。在linux.py,您会注意到有一行“so\u ext=”so“”,这可能就是解决扩展问题的原因。在
请注意,尽管在这个例子中,假装cygwin是linux的小技巧可以奏效,但是稍后会有一些障碍会让您遇到(不幸的是,我没有足够的细节来避免这些障碍)。在
编辑:我的相关部分初始py现在看起来像
相关问题 更多 >
编程相关推荐