Cygwin:readline libが別の場所にロードされる

Cygwin:readline libが別の場所にロードされる

cygwinで私が入力したほとんどすべてのunixコマンドは警告メッセージを印刷し、時間がかかり、最終的に正しい結果を提供します。

-bash-4.1$ ls
0 [main] bash 7468 child_info_fork::abort: cygreadline7.dll: Loaded to different address:
parent(0x320000) != child(0x3B0000)
-bash: fork: retry: Resource temporarily unavailable

この警告はどういう意味ですか?

答え1

Windowsは各プロセスの同じアドレスに各ダイナミックライブラリをロードします。forkこれにより、親プロセスと子プロセスに異なるバージョンのDLLがある場合(つまり、親プロセスが開始された時間と子プロセスが開始される時間の間にDLLをアップグレードする場合)、Cygwinエミュレーションと望ましくない対話が発生する可能性がありますあります。ライブラリをアップグレードしたら、すべてのCygwinプロセスを再起動してください。

答え2

これサイグウィンのよくある質問「リソースを一時的に使用できません」という言及は、Windowsがプロセスの作成を処理する方法によって発生する可能性があるエラーメッセージの1つです。ここにリストされている潜在的な解決策は次のとおりです。

  • プロセスの再起動
  • すべてのアプリケーションを削除Cygwinと既知の衝突
  • 指示に従って/usr/share/doc/rebase/README実行してください。rebaseall

関連情報