问题 Cygwin 64 G ++ -fuse-linker-plugin错误


当我尝试编译一个非常基本的C ++程序时,我收到以下错误。

$ g++ -fuse-linker-plugin test.cpp
g++: fatal error: -fuse-linker-plugin, but cyglto_plugin.dll not found
compilation terminated.

int main() {
        return 0;
}

这是使用G ++直接安装新的Cygwin。

如果我在那里搜索文件,它  存在并位于:

/usr/libexec/gcc/x86_64-pc-cygwin/4.8.2/cyglto_plugin.dll

我如何让Cygwin 64正确看待这个?


9800
2017-10-30 02:42


起源



答案:


我猜你只在安装时检查了gcc-g ++包。请注意,版本是4.8.1-3但是在下一页上您可以看到正在安装的许多依赖项,例如libgcc版本4.8.2。

4.8.1和4.8.2的混合似乎是问题所在。

在安装程序中,将所有依赖项复制到编辑器中,搜索4.8.2以查找有问题的软件包,返回安装程序并单击这些软件包,直到将安装4.8.1-3。

仔细检查您是否未安装这些软件包的最新版本。


9
2017-10-30 13:53



这是确切的问题,它解决了我的问题。干杯!!猜测我需要等待所有软件包更新,然后才能让它们全部升级。 - Teh Hippo


答案:


我猜你只在安装时检查了gcc-g ++包。请注意,版本是4.8.1-3但是在下一页上您可以看到正在安装的许多依赖项,例如libgcc版本4.8.2。

4.8.1和4.8.2的混合似乎是问题所在。

在安装程序中,将所有依赖项复制到编辑器中,搜索4.8.2以查找有问题的软件包,返回安装程序并单击这些软件包,直到将安装4.8.1-3。

仔细检查您是否未安装这些软件包的最新版本。


9
2017-10-30 13:53



这是确切的问题,它解决了我的问题。干杯!!猜测我需要等待所有软件包更新,然后才能让它们全部升级。 - Teh Hippo


最近使用apt-cyg,安装了g ++ 4.9.2,但仍保留了gcc-core 4.8.2。

解决方案:

    apt-cyg remove gcc-g++
    apt-cyg remove gcc-core
    apt-cyg install gcc-g++

2
2018-02-26 14:07





两个版本的gcc导致问题,检查文件夹/ usr / libexec / gcc / x86_64-pc-cygwin /会有两个版本的gcc。 要解决删除一个。


1
2018-02-22 14:52





上面的答案对我有用,但我被安装程序自动升级回到4.8.2。所以,我最初认为这不起作用;它实际上做到了。您只需要知道在使用安装程序稍后添加软件包时,它可能会尝试再次升级到4.8.2并破坏。

可以选择关闭LTO -fno-use-linker-plugin,但这对我没有任何好处,因为CPAN正在推出g ++。它可以作为一种解决方法。

(我知道这不是一个答案,但我无法发表评论)


0
2017-10-30 21:17



在“选择包”窗口中,单击“保持”而不是“限制”以不自动升级所有包。 - xnor