Cygwin报错 child_info_fork::abort: XXX.dll: Loaded to different address: parent(XXX) != child(XXX)

2023-05-16

目录

报错现象

错误原因

解决方法

关闭杀毒软件

Rebase库文件


报错现象

Cygwin已经在电脑上常驻了一段时间,安装了不少库文件和应用。在某次安装新应用之后,运行该应用时出现类似如下错误:

[main] make 7780 child_info_fork::abort: C:\cygwin\bin\cygiconv-2.dll: Loaded to different address: parent(0x440000) != child(0x5F0000)
make: fork: Resource temporarily unavailable

错误原因

1️⃣后台有杀毒软件在运行时,杀毒软件的库可能会被加载到Cygwin进程的地址空间,从而产生冲突并给出这个错误(参考来源)。

2️⃣当Cygwin上安装的库过多时,在运行程序时可能会有多个库被加载到重叠的地址段,从而产生冲突并给出这个错误。

DLLs on Windows need to be loaded into memory at non-conflicting base addresses. rebaseall is a cygwin utility that scans all the libraries currently installed and sets each to request a different base address so that none will conflict.

(参考来源)

解决方法

关闭杀毒软件

如果系统有杀毒软件正在运行,先关闭之,再重启Cygwin,观察是否恢复正常。

Rebase库文件

如果不是杀毒软件的问题,或者关闭杀毒软件后仍然报错,我们可以使用Cygwin提供的rebase-trigger工具来进行Cygwin库文件的rebase。进行rebase时,Cygwin会重新指定其每个库的加载位置,以确保它们在加载时不会再重叠(参考来源)。rebase的操作步骤如下:

1️⃣在Cygwin中执行:

rebase-trigger full

2️⃣关闭所有Cygwin进程。

3️⃣打开Cygwin的安装程序setup-x86_64.exe(64位Cygwin)或setup-x86.exe(32位Cygwin),一直前进到最后一步(安装程序包那一步),进度条走完后即完成rebase。

成功rebase后,再次打开Cygwin里的相关应用,现在应该不再报错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cygwin报错 child_info_fork::abort: XXX.dll: Loaded to different address: parent(XXX) != child(XXX) 的相关文章

  • cd:参数太多 - 空格正确转义+引号?

    使用 cygwin 终端 我的 bashrc 中有以下内容 export WINHOME cygdrive c Users userName export TUTORING WINHOME Desktop Coding Projects T
  • 太多的子进程 fork() [重复]

    这个问题在这里已经有答案了 代码 for ii 0 ii lt 24 ii switch fork case 1 printf n nproblem with fork n n exit 0 case 0 WriteOnShared Mem
  • UTF-16 perl 输入输出

    我正在编写一个脚本 它将 UTF 16 编码的文本文件作为输入并输出 UTF 16 编码的文本文件 use open encoding UTF 16 open INPUT lt input txt or die cannot open gt
  • 处于咕噜模式的猪

    我在windows中安装了cygwin hadoop和pig 配置看起来不错 因为我可以在批处理和嵌入模式下运行 Pig 脚本 当我尝试以 grunt 模式运行 pig 时 发生了一些奇怪的事情 让我解释 我尝试运行一个简单的命令 例如 g
  • GCC 声明: typedef __pid_t pid_t?

    我对 例如 pid t 的声明感到困惑 pid t 是什么意思 它是其他地方定义的另一种类型吗 如果是 在哪里 为什么我的 types h 在 ubuntu 13 04 64 位中定义 pid t 如下 ifndef pid t defin
  • cygwin下无法访问jarfile

    我知道这里有很多 无法访问 jarfile 问题 但我确实觉得这足以保证它自己的线程 我正在编写一个演练 该演练的一部分涉及安装 Cygwin 并运行 jar 文件 问题是这个 jar 文件需要从多个目录调用 而不是让我的读者每次需要运行它
  • 在 Windows 上运行 libxlsxwriter

    我正在尝试使用libxlsxwriter 但我似乎可以让事情正确编译或运行 我按照 Windows 的说明使用Mingw w64 and msys2可以在这里找到 http libxlsxwriter github io getting s
  • 防止 fork() 复制套接字

    我有以下情况 伪代码 function f pid fork if pid 0 exec to another long running executable no communication needed to that process
  • 在 Windows 上运行在 Cygwin 中编译的 C++ 可执行文件

    The Idea我在 Cygwin 上使用 G 编译了一个 C exe 我希望能够通过 PHP 将该 exe 的输出放入我的 HTML 中 也就是说 假设我有一个 C 可执行文件 test exe 它输出 Hello World 运行时 那
  • 如何使用 Cygwin 打开 RTTI?

    当我的Android NDK C 本机代码编译时 出现以下错误 错误 fno rtti 不允许使用 dynamic cast 有人告诉我打开RTTI 但我不知道该怎么做 我需要修改吗Application mk或者是什么 my Applic
  • 如何使用CURL/CygWin将文件从本地Windows机器发送到服务器?

    我的目标是使用 cygwin curl 将 CouchDB 文档从我的 Windows 计算机上传到远程服务器 以下教程展示了如何在 Mac 上执行相同操作 http net tutsplus com tutorials getting s
  • fork 后调试子进程(配置了 follow-fork-mode 子进程)

    我正在开发一个应用程序 父级分叉子级来处理某些任务 我遇到一个问题 我已将 gdb 配置为 follow fork mode 子级 但在 fork 后 到达断点后 它发送 SIGTRAP 但子级以某种方式终止并向父级发送 SIGCHLD 我
  • 对于有多个孩子的单亲,正确使用 fork() 和 pipeline() 。我该如何正确地做到这一点?

    So my 上一篇文章 https stackoverflow com questions 26321100 concept any good c example of fork pipe where one parent creates
  • 如何获取子进程的返回值?

    程序计算从 1 到 N 的数字之和 子进程计算偶数之和 父进程计算奇数之和 我想在父进程中获取子进程的返回值 我怎么做 include
  • 如何从 Cygwin 环境运行 make?

    我正在尝试在Linux环境上运行Linux驱动程序 按照运行winkvm的说明 卡在点上使用cygwin环境运行make命令 喜欢 使用Cygwin环境构建原始KVM驱动程序 cd kvm kernel 不要输入configure make
  • 解决 emacs 错误的想法:“应用:生成子进程:exec 格式错误”

    我正在尝试将 rdebug 与 emacs 和 cygwin 一起使用 但遇到了麻烦 每当我执行 M x rdebug 并为其提供适当的脚本来运行时 它都会因错误而停止 apply Spawning child process exec f
  • 在 fork() 之后寻求有关“文件描述符”的简单描述

    Unix 环境中的高级编程 第二版 作者 W Richard Stevens 第 8 3 节 fork 函数 描述如下 父级和子级共享相同的文件偏移量非常重要 考虑一个分叉子进程 然后等待子进程完成的进程 假设两个进程都写入标准输出作为其正
  • 如何从 Emacs 中运行 Cygwin Bash Shell?

    我在 Windows 上运行 GNU Emacs 因此输入 M x shell 启动 Windows 命令行 DOS shell 但是 我希望能够从 Emacs 中运行 Cygwin Bash Shell 或任何其他非 Windows sh
  • 子进程c的返回值

    我需要帮助将 状态代码 从子程序返回给父程序 它将检查状态代码 打印代码并退出父程序 这是一个班级项目 所以我会在这里放置一些相关代码 但出于明显的原因 我不会发布整个项目 我已经通过 exec 分叉并创建了子进程 父进程进行一些奇特的数学
  • 如何触发并忘记子进程?

    我有一个长时间运行的进程 我需要它来启动另一个进程 该进程也会运行很长一段时间 我只需要开始它 然后就完全忘记它 我设法通过从 Ruby 编程 一书中获取一些代码来完成我需要的操作 但我想找到最好 正确的方法 并了解发生了什么 这是我最初得

随机推荐