簡體   English   中英

Cygwin 64 G ++ -fuse-linker-plugin錯誤

[英]Cygwin 64 G++ -fuse-linker-plugin Error

當我嘗試編譯一個非常基本的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正確看待這個?

我猜你只在安裝時檢查了gcc-g ++包。 請注意,版本是4.8.1-3但是在下一頁上您可以看到正在安裝的許多依賴項,例如libgcc版本4.8.2。

4.8.1和4.8.2的混合似乎是問題所在。

在安裝程序中,將所有依賴項復制到編輯器中,搜索4.8.2以查找有問題的程序包,返回安裝程序並單擊這些程序包,直到將安裝4.8.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++

兩個版本的gcc導致問題,檢查文件夾/ usr / libexec / gcc / x86_64-pc-cygwin /會有兩個版本的gcc。 解決刪除一個。

上面的答案對我有用,但我被安裝程序自動升級回到4.8.2。 所以,我最初認為這不起作用; 它實際上做到了。 您只需要知道在使用安裝程序稍后添加軟件包時,它可能會嘗試再次升級到4.8.2並破壞。

可以選擇使用-fno-use-linker-plugin關閉LTO,但這對我沒有任何好處,因為CPAN是啟動g ++的原因。 它可以作為一種解決方法。

(我知道這不是一個答案,但我無法發表評論)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM