cpywin error:fatal error - unable to remap(solutions)

解决 "fatal error - unable to remap" 问题

 

在Cygwin中,有时候需要执行SH命令,而这些命令调用DLL时经常会遇到类似的错误提示:

 [main] ruby 4208 C:/cygwin/bin/rubyexe(or perl.exe) .: *** fatal error - unable to remap C:/cygwin/bin/cygssl-0.9.8.dll to
same address as parent(0×340000) != 0×4730000
 [main] ruby 1752 fork: child 4208 - died waiting for dll loading, errno 11

 

 

 

具体原因不大清楚,解决方法如下:

 

MS-DOS CMD到Cygwin的bin路径下,执行ash命令,或者直接run这个命令;

在ash提示符后面运行/bin/rebaseall,注意要输入完整,如果只输入rebaseall,会提示找不到这个命令,而且这个命令只能在ash下面执行,不能在Cygwin下面执行。

现在打开Cygwin,应该一切正常了。

Perl的情况也一样。

### 回答1: 这个错误一般是因为GCC编译器缺少LTO插件导致的。LTO插件是GCC编译器的一部分,用于执行链接时的优化。 需要在安装GCC编译器时确保LTO插件被正确安装。 可能需要更新GCC版本或重新安装GCC编译器。 还可以尝试手动安装liblto_plugin-0.dll并将其添加到系统路径中。如果这些尝试都没有解决问题,可能需要进行更深入的调查,例如检查编译器和链接器的配置,以确定LTO插件被正确加载。 ### 回答2: 首先,gcc是GNU Compiler Collection的简写,它是一种开源的编译器套件,支持多种编程语言,包括C、C++、Objective-C、Fortran等。gcc可以在多种操作系统上运行,如Unix、Linux、Windows等。 -fuse-linker-plugin是gcc的一个编译选项,它会启用GCC的链接器插件机制。链接器插件可以在链接过程中对目标文件进行优化,以提高生成的可执行文件的性能。 然而,当使用-fuse-linker-plugin选项时,有时会出现如题所述的错误:fatal error: -fuse-linker-plugin, but liblto_plugin-0.dll not found。这是因为liblto_plugin-0.dll是GCC的一个插件,它用于链接器插件机制。当GCC编译器使用-fuse-linker-plugin选项时,它需要找到liblto_plugin-0.dll文件才能正确地执行链接器插件功能。 如果出现该错误,解决方法如下: 1. 确认GCC是否正确安装。如果GCC没有正确安装,则无法使用liblto_plugin-0.dll文件,并且编译器会显示该错误。 2. 确认系统是否有liblto_plugin-0.dll文件。如果该文件不存在,则需要重新安装GCC或手动安装此文件。 3. 设置合适的环境变量。如果您的系统中安装了多个版本的GCC,则需要设置合适的环境变量。以Windows系统为例,需要将GCC的bin目录添加到PATH环境变量中,这样系统才能找到正确的liblto_plugin-0.dll文件。 总之,当使用-fuse-linker-plugin选项时,需要注意当前环境是否正确安装了GCC以及是否有正确的liblto_plugin-0.dll文件。如有问题需要根据上述解决方法进行检查和修复。 ### 回答3: gcc: fatal error: -fuse-linker-plugin,但找不到liblto_plugin-0.dll。 这个问题通常发生在Windows系统上,并且是因为gcc无法在系统中找到所需的liblto_plugin-0.dll文件。该文件是用于链接器插件的库文件之一,可以优化程序的编译和链接。 为了解决这个问题,你需要在Windows系统中手动安装LLVM和Clang工具链。LLVM是一个开源的编译器基础设施,可以编写优化编译器,并生成高质量的可执行文件和库文件。 安装LLVM和Clang可以通过以下步骤实现: 1.首先,从LLVM的官方网站https://releases.llvm.org/download.html下载适用于您的操作系统版本的软件包。 2.解压缩下载的软件包,并将其添加到您的系统路径中。这可以通过在系统环境变量中添加LLVM的bin文件夹路径实现。 3.然后检查LLVM和Clang是否已成功安装。在终端中输入命令“clang -v”和“llvm -v”,如果成功安装,则会显示您所安装的版本号。 4.最后,重新编译您的程序,在gcc命令中添加“-flto -fuse-linker-plugin”选项,这将告诉gcc在编译和链接过程中使用LLVM的插件,以优化您的程序。如果一切成功,您将能够成功编译和链接您的程序,而不再遇到“liblto_plugin-0.dll not found”错误。 总之,解决此问题的关键在于安装和配置LLVM和Clang工具链,以便gcc可以找到所需的库文件,并使用插件优化程序的编译和链接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值