2013-10-30 18 views
10

非常に基本的なC++プログラムをコンパイルしようとすると、次のエラーが発生します。Cygwin 64 G ++ -fuse-linker-pluginエラー

$ 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を見て作るのですか?

答えて

8

インストール時にgcc-g ++パッケージのみをチェックしたと思います。バージョンは4.8.1-3であることに注意してください。次のページでは、多くの依存関係がインストールされていることがわかります。例えば、libgccとバージョン4.8.2。

4.8.1と4.8.2が混在しているように見えます。

すべての依存関係をエディタにコピーし、4.8.2を検索して問題のあるパッケージを見つけ、インストーラに戻り、4.8.1-3がインストールされるまでこれらのパッケージをクリックします。

これらのパッケージの最新バージョンはインストールしないでください。

+0

、それは私の問題を修正しました。乾杯!!すべてのパッケージをアップグレードする前に、すべてのパッケージが更新されるのを待つ必要があると思います。 –

0

上記の答えは私のために働いていましたが、インストーラが自動的にパッケージを4.8.2にアップグレードし直しました。だから、私は最初はこれがうまくいかないと思った。それは実際にしました。後でパッケージを追加するためにインストーラを使用するときには、再度4.8.2にアップグレードして作業を中断させようとするかもしれないことに気づくだけです。

-fno-use-linker-pluginでLTOを無効にするオプションがありますが、CPANがg ++を起動しているので、それはいいことではありません。回避策として役立つかもしれません。

(私はこれが答えのあまりないですけど、私はコメントすることができませんでした)フォルダは/ usr/libexecに/ gccのを確認し、GCCの

+0

"パッケージの選択"ウィンドウで "Curr"ではなく "Keep"をクリックすると、すべてのパッケージが自動的にアップグレードされません。 – xnor

1

二つのバージョンがprobleを引き起こしていた/ x86_64の-PC-cygwinの/ gccには2つのバージョンがあります。 削除を解決するには

2

最近、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++ 
関連する問題