我想要编译PyPy在Cygwin上,当蟒蛇试图打开文件“externmod”,它只是用gcc编译,编译将会停止编译PyPy。在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?我不想这样做。在Cygwin上
Q
在Cygwin上
2
A
回答
3
要回答你的问题,解决你的问题最简单的方法是在pypy/translator/platform中修改init .py,使它指向一个实际的平台,而不是它现在正在使用的'None' 。在linux.py中,你会注意到`so_ext ='so''这行可能是修复扩展问题的原因。请注意,虽然假装cygwin的一点小技巧是linux会在这个确切的实例中工作,但是稍后会有一些道路颠簸会让你(我不记得有足够的细节可以避免) 。
编辑:我init.py有关节目前看起来像
if sys.platform == 'cygwin':
from pypy.translator.platform.linux import Linux, Linux64
import platform
if platform.architecture()[0] == '32bit':
host_factory = Linux
else:
host_factory = Linux64
elif sys.platform.startswith('linux'):
1
Windows需要“.exe”扩展名才能知道它是可执行文件。您需要修改构建以查找Windows并使用.exe扩展名。
3
我设法编译它,不得不作出了不少改变之后。
- PyPy没有为Cygwin提供配置。如上所示,我复制了Linux 配置并根据需要对其进行了修改。特别是我删除了 -pthread标志,并且--export-dynamic C链接器标志应该是--export-all-symbols。这也是指定文件扩展名(.exe,.dll)的位置。
- Cygwin的不实现在tm结构的tm_gmtoff和tm_zone领域,这是一个GNU扩展POSIX标准。 PyPy使用这些字段来确定时区。我实施了解决方法。使用这些tm字段可以使几个文件都处于更新状态。
- 在Cygwin下,系统调用waitpid()需要PyPy使用的插槽2的不同参数类型。我实现了一个重新映射参数的包装器。
- 在Cygwin下,curses C头文件在ncurses下。
相关问题
- 1. 在Cygwin上
- 2. 问题在Cygwin上
- 3. Cygwin上的Pyscripter
- 4. Cygwin上的Redmine
- 5. Cygwin上的tdbloader:java.lang.NoClassDefFoundError
- 6. 无法在Git/Cygwin上chdir()
- 7. tchar.h在cygwin上找不到
- 8. 在Cygwin上构建OpenSSH
- 9. 在Cygwin上安装Ant
- 10. 在Cygwin上安装PIL
- 11. 在cygwin上安装Poppler
- 12. pgpool在cygwin上运行
- 13. 在Cygwin上设置emacs
- 14. 在Cygwin上编译node.js
- 15. 的Hadoop在Cygwin上 - DemoWordCount
- 16. Kngter在CygWin上安装
- 17. 在cygwin 1.7中生成的.exe没有在cygwin上运行1.52
- 18. LoadError上通过Cygwin
- 19. 在cygwin上运行postscript文件
- 20. 在Cygwin上构建Linux软件包
- 21. nasm/ld未能做到%include在cygwin上
- 22. 如何在cygwin上安装mysql?
- 23. 在Windows上编译Python扩展与Cygwin
- 24. 如何在cygwin上为g ++安装nan.h?
- 25. 无法在Cygwin上构建wxWidgets - xlocale.h
- 26. pkg-config在Cygwin上无法运行
- 27. 在cygwin上为getnetbyname链接哪个库?
- 28. 如何编译需要在Cygwin上
- 29. Cygwin在Windows XP上编译HPLIP
- 30. Imagemagick mogrify在Cygwin上停止工作
为Cygwin和指令的补丁你是对的,也有其他roadbumps。但是你之前已经完成了整个过程,并且已经完成了它的工作? – 2012-04-23 18:22:29
大约一年前我就收集了它,是的(你已经启发我再次尝试:D)。如果您使用上面提到的特定修复程序,则会遇到有关rctime模块未进行翻译的问题。接受[来自这里的]建议(https://bugs.pypy.org/issue902),我禁用了rctime和_multiprocessing模块;不幸的是,这会破坏使用线程的任何代码。我正在考虑启用一些可以弥补这一点的Windows功能,但是我还没有走得很远。 – Casey 2012-04-23 19:49:24