12

当我尝试编译一个非常基本的 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;
}

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

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

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

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

4

4 回答 4

10

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

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

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

仔细检查您没有安装这些软件包的最新版本。

于 2013-10-30T13:53:41.820 回答
5

最近使用 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++
于 2015-02-26T14:07:10.123 回答
1

Two version of gcc was causing proble, check folder /usr/libexec/gcc/x86_64-pc-cygwin/ there would be two version of gcc. To solve remove one.

于 2015-02-22T14:52:58.120 回答
0

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

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

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

于 2013-10-30T21:17:03.320 回答