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

时间:2013-10-30 02:42:23

标签: c++ windows g++ cygwin 64-bit

当我尝试编译一个非常基本的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正确看待这个?

4 个答案:

答案 0 :(得分:9)

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

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

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

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

答案 1 :(得分:3)

最近使用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 :(得分:1)

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

答案 3 :(得分:0)

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

可以选择使用-fno-use-linker-plugin关闭LTO,但这对我没有任何好处,因为CPAN是启动g ++的原因。它可以作为一种解决方法。

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