2012-02-17 9 views
5

Il programma che ho scritto utilizza SFML ma non riesce quando viene eseguito perché manca libgcc_s_dw2-1.dll. Sto usando tdm-gcc e non riesco a trovare il file da nessuna parte sul mio computer e reinstallare non aiuta e un semplice programma Hello World funziona bene quindi non sono sicuro del motivo per cui ha bisogno di questa DLL.Dove posso trovare libgcc_s_dw2-1.dll?

Quale pacchetto mingw è possibile trovare in questo? Ho avuto una ricerca sul sito ma non riesco a trovarlo. Mi scuso se ho appena perso un risultato di ricerca ovvio, ma questo è incredibilmente frustrante! Grazie in anticipo, ell.

P.S. A proposito, sono su Windows 7 a 64 bit

MODIFICA: Scusa se ho dimenticato di dire che avevo già letto la risposta allo another question con lo stesso problema, ma come ho detto, non riesco a trovare il file da nessuna parte sul mio computer, nella directory bin o in altro modo. Inoltre, passare -static-libgcc e -static-libstdc++ al compilatore e/o al linker mi dà unrecognized option '-static-libstdc++'. Mi dispiace per non aver chiarito che ho già letto questo. Grazie!

risposta

3

Quel file implementa la gestione utilizzando le informazioni NANO (nuovo stile, contro setjump/LongJump o SJLj, il vecchio stile eccezione.

così si dovrebbe averne bisogno solo se il codice dipende eccezioni di alcun tipo.

Se vi sentite fortunati si può afferrare la mia compilazione di questo file da here.

+0

Grazie! per sapere da dove hai ottenuto che '.dll'? – Ell

+0

@Ell - In realtà ho compilato personalmente l'intero MinGW da fonti! Compilato a croce da una scatola di Ubuntu. Compito difficile e molto istruttivo. Stavo pensando di scrivere un blog post su questo, ma non ho mai avuto abbastanza determinazione ... – rodrigo

+0

wow che suona in modo strano! Se finisci per scrivere un post sul blog, informami che posso farlo! – Ell

4

Credo che questo sia un problema di compilatore tdm/gcc, piuttosto che un'installazione di Microsoft Visual Studio.

Il libgcc_s_dw2-1.dll deve essere nella directory bin del compilatore. È possibile aggiungere questa directory alla variabile d'ambiente PATH per il collegamento di runtime, oppure è possibile evitare il problema aggiungendo "-static-libgcc -static-libstdC++" ai propri flag del compilatore.

Se si prevede di distribuire l'eseguibile, quest'ultimo probabilmente ha più senso. Se si prevede di eseguirlo solo sul proprio computer, la modifica della variabile d'ambiente PATH è un'opzione interessante (mantiene le dimensioni dell'eseguibile).

Aggiornato:

Sulla base del feedback da Greg Treleaven (vedi commenti qui sotto), sto aggiungendo collegamenti a:

[Screenshot of Code::Blocks "Project build options"]

[GNU gcc link options]

Quest'ultima discussione include -static-libgcc e -static-libstdc++ opzioni di collegamento.

+0

Penso che collega l'altra domanda è più appropriato di un semplice copia e incolla, soprattutto se le modifiche si basano su osservazioni che non sono state fatte sono presenti, grazie comunque comunque – Ell