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を再コンパイルするのに手間がかかりません。私はそれをしたくありません。cygwinでPyPyをコンパイルする
2
A
答えて
3
あなたの質問に答える最も簡単な方法は、 .pyをpypy/translator/platformに変更して、現時点では「なし」の代わりに実際のプラットフォームを指すようにすることです。 linux.pyには、 `so_ext = 'so'という行があることに気づくでしょう。これはおそらく拡張の問題を修正するものです。
cygwinを装っていることのちょっとしたハックは、この正確な例ではうまくいくでしょうが、後でいくつかの道のりがあります(残念ながら、私は十分な詳細で覚えることができません) 。
編集:私の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フィールドを実装していません。これはPOSIX標準のGNU拡張です。 PyPyは、これらのフィールドを使用してタイムゾーンを決定します。私は回避策を実装しました。これらのフィールドを使用すると、すべてのファイルを変更する必要があります。
- Cygwinでは、システムコールwaitpid()は、スロット2にPyPyが使用するものとは異なる引数型を想定しています。私は引数を再マッピングするラッパーを実装しました。
- Cygwinでは、cursesのCヘッダファイルはncursesの下にあります。
あなたはあなたは正しいhttp://www.tux.org/~mayer/cygwin/pypy
関連する問題
- 1. Pythonをバイナリでコンパイルする - pypyのパフォーマンス
- 2. CygwinでJavaプログラムをコンパイル
- 3. Cygwinでプロジェクトをコンパイルする際のエラー
- 4. gccでコンパイルする(Windows上のcygwin)
- 5. cygwinでwinapiをコンパイルします
- 6. EclipseのCygwinプロジェクトをコンパイルする
- 7. ocamlグラフィックスウィンドウをコンパイルする方法cygwin
- 8. cygwinでredisqlをfenv.hなしでコンパイル
- 9. MinGW-w64/Cygwinでfreetype-2.4.9をコンパイル
- 10. Cygwin G ++で-m32でC++をコンパイルするWindows 64ビットエラー
- 11. Cygwinを使ってC++ wxWidgetsをコンパイル
- 12. WindowsインストールでCygwinコンパイル済みPythonモジュールをインストールする
- 13. cygwinでsphinxbaseをコンパイルするときのエラー
- 14. JNI(Android NDK)のcygwinでC++コードをコンパイルする
- 15. Cygwinを使用してコルクスクリューをコンパイルする方法
- 16. Cygwinコンパイラを使用してQtプロジェクトをEclipseにコンパイルする
- 17. CygwinでFishシェルをコンパイルしていますか?
- 18. はPyPy
- 19. PypyコンパイラでMySQLdbモジュールを使用する
- 20. WindowsでPyPyを使用するには?
- 21. ソースからコンパイルせずにcygwinにパッケージをインストールする
- 22. Cygwin Winでアセンブリ(.s)コードをコンパイルできません
- 23. CygwinでC++のBoostライブラリをコンパイルできない
- 24. cygwinでWindows 7-64でgcc-7-20170212をコンパイルすると、==> wopenエラー
- 25. リンクcygwinでコンパイルされたライブラリを使ったVisual Studio
- 26. pypy import clrがWindowsで失敗する
- 27. cygwinを使用してWindows上でffmpegをコンパイルする際の問題
- 28. cygwinでforkを使用してプログラムをコンパイルするときの問題
- 29. 簡単なC#コードをWindows 10でcygwinを使ってコンパイルするには?
- 30. PyPy - SWIG - QuickFix mix
でCygwinと手順については、パッチを見つけることができ、他のroadbumpsがあります。以前はすべてのプロセスを完了して動作させましたか? –
私はそれを約1年前にコンパイルしました(そして、あなたは私に再びそれを試してもらうように促しました:D)。上記の特定の修正を使用する場合は、翻訳していないrctimeモジュールに関する問題が発生します。アドバイスを受けて(https://bugs.pypy.org/issue902)、私はrctimeと_multiprocessingモジュールを無効にしました。残念ながら、これはスレッドを使用するコードを破ります。私はそれを補うかもしれないいくつかの窓機能を有効にすることを検討していますが、私はそれほど遠くには達していません。 – Casey