Problemas con CodeBlocks
« en: 7 Junio 2019, 12:53 pm »
Hola, buenos días.
Me he instalado el CodeBlocks 17.12 en un Windows 10 hace unos días para crear,
principalmente, aplicaciones de consola con C. Resulta que parece que compila bien el
código que sea, ya que CodeBlocks lo ejecuta correctamente (supongo que en una especie
de simulación o algo así). Sin embargo, cuando le doy directamente al ejecutable que se
haya en la carpeta "...\bin\Debug" me sale un cuadro de diálogo cuyo mensaje no
entiendo y que dice: "La ejecución de código no puede continuar porque no se encontró
libgcc_s_dw2-1.dll. Este problema se puede solucionar reinstalando el programa". Le doy
a la única opción, "Aceptar", y todo desaparece.
He desinstalado y reinstalado el CodeBlocks pero la cosa sigue igual. El proyecto está en
una carpeta cuyo nombre no tiene espacios que se haya directamente en la raíz del disco
duro.
¿Alguien sabe cómo puedo hacer para que el CodeBlocks me genere ese ejecutable
correctamente?
Gracias de antemano por las respuestas. Un saludo.
En línea
K-YreX Re: Problemas con CodeBlocks
Moderador « Respuesta #1 en: 7 Junio 2019, 16:21 pm »
Desconectado No estoy muy familiarizado con DLLs pero te dejo este link que quizás te
ayude. Está en inglés, espero que te sirva, de todas formas es un inglés
Mensajes: 916 fácil de entender
https://stackoverflow.com/questions/4702732/the-program-cant-start-
because-libgcc-s-dw2-1-dll-is-missing
En línea
Código
1. cout << "Todos tenemos un defecto, un error en nuestro
código" << endl;
RayR Re: Problemas con CodeBlocks
« Respuesta #2 en: 7 Junio 2019, 19:31 pm »
Desconectado
No es un error. Lo que pasa es que, en los programas de C y C++, la
Mensajes: 153 biblioteca estándar (llamada el C/C++ runtime), que contiene las
definiciones de funciones estándar, suele no incluirse en el ejecutable,
sino que enlaza de forma dinámica (en Windows, un dll). Esto pasa
también con Visual C++, por ejemplo, donde los ejecutables generados,
necesitan archivos como msvcr*.dll o msvcp*.dll, donde * es un número
de versión. Si la computadora donde quieras ejecutar el programa no
contiene el archivo correspondiente a la versión de Visual C++ con la
que lo compilaste, marcará un error. Vamos, que tu problema no es fallo
de Code::Blocks, ni nada por el estilo, simplemente así funciona esto.
En tu caso tienes dos opciones. Una es copiar el archivo que te pide (se
encuentra en <carpeta de codeblocks>\MinGW\bin) a una ruta done tu
ejecutable pueda verlo, como Windows\system32, lo cual NO
recomiendo, o a la carpeta de tu exe. Con eso se arregla.
La otra opción es enlazar estáticamente el runtime, y de esta forma tu
ejecutable ya contiene todo ese código, lo cual obviamente incrementará
su tamaño, pero eliminas la dependencia de la dll. Esto lo haces de la
manera que indican en el link que te pusieron: Project/Build
options/Linker settings, y en other linker settings: -static-libgcc. Para C+
+ también agregar -static-libstdc++.
En línea
niano Re: Problemas con CodeBlocks
« Respuesta #3 en: 8 Junio 2019, 08:42 am »
Desconectado
Hola buenas.
Mensajes: 16
Estupendo!!! Muchas gracias por vuestras respuestas, parece que ya lo
he arreglado. He elegido la opción de eliminar la dependencia de la dll ya
que quisiera poder ejecutar el programa en otras máquinas. He seguido
las indicaciones y parece que ha funcionado.
Muchas gracias y un saludo.
En línea
@XSStringManolo Re: Problemas con CodeBlocks
<svg/onload=alert()> « Respuesta #4 en: 8 Junio 2019,
Colaborador 17:30 pm »
Desconectado Si quieres que no se vea la consola al abrir el
ejecutable también puedes poner:
Mensajes: 2.292 -mwindows es muy útil para programas que
no necesites que se muestren en pantalla,
como por ejemplo un programa que haga
una copia de seguridad de carpetas del
escritorio y se cierre sin ninguna opción.
Yo siempre comento todos los ajustes del ide
en el código fuente antes de compartirlo es
muy de agradecer si alguien que está
aprendiendo no le funciona el programa tras
compilarlo como funciona en el ejecutable
que acompañaba el código.
Código
1. /*c++11*/
2. /*Code::Blocks Version 17.12*/
3. /*
4. Other linker settings:
5. -lmingw32 -mwindows
Turn off the red ligth
6. */
7.
8. #include <.....