2011-02-13 19 views
26

Possible Duplicate:
The program can't start because libgcc_s_dw2-1.dll is missingprograma no puede encontrar el compilador libgcc_s_dw2-1.dll

estoy usando Code :: Blocks y MinGW 4.4 (creo) para crear un proyecto de C++. Obtengo este error del sistema si lo ejecuto desde su directorio, pero no desde Code :: Blocks.

The program can't start because libgcc_s_dw2-1.dll is missing from your computer. Try reinstalling the program to fix this problem. 

En this post hardmath dijo para agregar -static-libgcc a las opciones del compilador, que une a la DLL estáticamente. Cuando lo intenté, el error todavía ocurrió. Podría hacerlo funcionar agregando el directorio MinGW bin a la variable Path de mi computadora, pero planeo distribuir mi programa a través de internet.

El problema solo apareció después de actualizar al último compilador de G ++. ¿Cuál es el motivo de que esta solución funcione para todos los demás, aparte de mí?

+0

Si el programa es C++, el mensaje de error podría indicar que ha utilizado algo de la biblioteca estándar de C++. La otra opción del enlazador que se sugirió es '-static-libstdC++'. Verifique que haya agregado esa opción también. – hardmath

+0

@hardmath: He usado . Creo que es de la biblioteca estándar de C++. Estaba usando '-static-libstdC++' cuando lo estaba intentando, pero la solución en realidad era ''Estatica' como lo dice @rubenvb a continuación. Gracias por tomarse el tiempo para ayudarme. –

+0

¿Cómo se agrega la opción del vinculador '-static-libgcc' en un proyecto de bloques de código? – user3728501

Respuesta

46

El argumento de línea de comandos de enlace -static-libgcc debería funcionar. Otra variante que puedes probar es simple -static.

Si no desea preocuparse por esto, y aún desea redistribuir su binario, solo copie el archivo dll correspondiente del directorio bin de MinGW y colóquelo junto a su ejecutable. Esta es una práctica común y funciona como se anuncia.

+2

¡Utilizando '-estático' trabajado! ¡Muchas gracias! :) –

+6

Tenga en cuenta que al usar '-static' se romperán las excepciones lanzadas a través de los límites de la DLL. – rubenvb

+0

También tenga en cuenta que un gcc dw2 incorporado tendrá problemas con excepciones extranjeras (consulte la explicación [página de información de TDM] (http://tdm-gcc.tdragon.net/start)) – rubenvb

Cuestiones relacionadas