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

CYGWIN 常见问题解答提到“资源暂时不可用”是由于 Windows 处理进程创建的方式而可能出现的错误消息之一。它列出的潜在解决方案是:

  • 重新启动进程
  • 删除所有应用程序已知与 Cygwin 冲突
  • 按照说明/usr/share/doc/rebase/README运行rebaseall

相关内容