2013-10-30 9 views
10

Ricevo il seguente errore quando provo a compilare un programma C++ di base.Cygwin 64 G ++ -fuse-linker-plugin Errore

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

Codice

int main() { 
     return 0; 
} 

Questo sta usando G ++ installato direttamente da una nuova installazione Cygwin.

Se cerco il file lì, fa esistono e si trova a:

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

Come faccio Cygwin 64 un'occhiata a questo in modo corretto?

risposta

8

Immagino che abbiate controllato il pacchetto gcc-g ++ solo durante l'installazione. Si noti che la versione è 4.8.1-3 BUT nella pagina successiva è possibile visualizzare molte dipendenze installate, ad esempio libgcc con versione 4.8.2.

Questa combinazione di 4.8.1 e 4.8.2 sembra essere il problema.

Nel programma di installazione, copiare tutte le dipendenze in un editor, cercare 4.8.2 per trovare i pacchetti problematici, tornare indietro nel programma di installazione e fare clic su tali pacchetti finché non verrà installato 4.8.1-3.

Verificare che non si stia installando l'ultima versione di tali pacchetti.

+0

Quello era il problema esatto e fissa il mio problema. Saluti!! Suppongo di dover aspettare che tutti i pacchetti siano aggiornati, prima di consentire loro l'upgrade. –

0

La risposta di cui sopra ha funzionato per me, ma sono stato sorpreso dall'installatore che ha eseguito l'aggiornamento automatico dei pacchetti a 4.8.2. Quindi, inizialmente pensavo che questo non funzionasse; in realtà ha fatto. Devi solo essere consapevole che quando si usa il programma di installazione per aggiungere pacchetti in un secondo momento, si può provare ad aggiornare nuovamente a 4.8.2 di nuovo e rompere le cose.

C'è la possibilità di disattivare LTO con -fno-use-linker-plugin, ma questo non mi fa nulla di buono perché CPAN è ciò che lancia g ++. Potrebbe servire come soluzione alternativa.

(so che questo non è molto più di una risposta, ma sono stato in grado di commentare)

+0

Nella finestra "Seleziona pacchetti" fare clic su "Mantieni" invece di "Curr" per non aggiornare automaticamente tutti i pacchetti. – xnor

1

Due versione di gcc stava causando proble, controllare la cartella/usr/libexec/gcc/x86_64-pc-Cygwin/ci sarebbero due versioni di gcc. Per risolvere rimuovere uno.

2

Più recentemente utilizzando apt-cyg, g ++ 4.9.2 è stato installato ma gcc-core 4.8.2 è rimasto.

risolto da:

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