Instalando SFML en Codeblocks (SOS)

Iniciado por amchacon, 22 Marzo 2013, 17:40 PM

0 Miembros y 1 Visitante están viendo este tema.

amchacon

Me estoy volviendo loco para instalar esta librería en CodeBlocks (Windows):

- Primero me descargo el full SDK de aquí:
http://www.sfml-dev.org/download.php
- Copia las carpetas lib y include a la carpeta de Mingw
- Creo un proyecto en blanco, voy a build options y pongo:



- Introduzco la macro SFML_STATIC tal como sale en el tutorial:



Añado un archivo al proyecto y pongo un código de ejemplo:

Código (cpp) [Seleccionar]
#include <SFML/Window.hpp>

int main()
{
   sf::Window window(sf::VideoMode(800, 600), "My window");

   // run the program as long as the window is open
   while (window.isOpen())
   {
       // check all the window's events that were triggered since the last iteration of the loop
       sf::Event event;
       while (window.pollEvent(event))
       {
           // "close requested" event: we close the window
           if (event.type == sf::Event::Closed)
               window.close();
       }
   }

   return 0;
}


Clico en compilar, errores:

Citarc:\mingw\bin\..\lib\gcc\mingw32\4.7.2\..\..\..\libsfml-window-s.a(VideoMode.cpp.obj):VideoMode.cpp|| undefined reference to `__gxx_personality_sj0'|
c:\mingw\bin\..\lib\gcc\mingw32\4.7.2\..\..\..\libsfml-window-s.a(VideoMode.cpp.obj):VideoMode.cpp|| undefined reference to `_Unwind_SjLj_Register'|
c:\mingw\bin\..\lib\gcc\mingw32\4.7.2\..\..\..\libsfml-window-s.a(VideoMode.cpp.obj):VideoMode.cpp|| undefined reference to `_Unwind_SjLj_Unregister'|
c:\mingw\bin\..\lib\gcc\mingw32\4.7.2\..\..\..\libsfml-window-s.a(VideoMode.cpp.obj):VideoMode.cpp|| undefined reference to `_Unwind_SjLj_Resume'|
||=== Build finished: 4 errors, 0 warnings (0 minutes, 0 seconds) ===|

Pruebo ahora a enlazar con las librerías dinámicas, elimino la macro STATIC y compilo. Ahora compila correctamente, copio las DLL a la carpeta y ejecuto el programa. Me da error:



Me estoy volviendo loco, LOCO
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

ukol

¿Qué paquete te bajaste de SFML?
Esas funciones que no puede referenciar son del sistema de excepciones de gcc para c++, hay 2 tipos y no se pueden mezclar en el mismo ejecutable. Probablemente sea un problema de compatibilidad binaria.

amchacon

Cita de: ukol en 22 Marzo 2013, 23:03 PM
¿Qué paquete te bajaste de SFML?
Esas funciones que no puede referenciar son del sistema de excepciones de gcc para c++, hay 2 tipos y no se pueden mezclar en el mismo ejecutable. Probablemente sea un problema de compatibilidad binaria.
La versión 2.0... Completa.

He desinstalado y reinstalado Mingw+Codeblocks. Ahora compila en estático pero sigo sin poder ejecutarlo.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

ukol

Hay 2 tipos de soporte por GCC a las excepciones de C++, SJLJ(de setjmp/longjmp) y DWARF2 exception handling, no sé mucho más en profundidad, las funciones a las que hace referencia el error de compilación es de este tipo, lo que sucede por mezclar binarios incompatibles(uno que use un sistema y otro que use otro), por eso no puede mezclaros, juntarlos en un ejecutable, linkarlos.
Busca sobre esto, tendrás que buscar otros binarios quizás, o cambiar alguna opción de compilador o linker, o cambiar de compilador o de linker.

Si dices que compila en estático, pon el error?

amchacon

Este es el error cuando compilo en estático y ejecuto:
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

X3R4CK3R

#5
Hola, siempre he compilado en dinámico y no he tenido ningún problema. Ayer salió SFML 2.1, me dispuse a instalarlo, compilo, todo bien, y a la hora de ejecutar me pasa exactamente lo que te pasaba a tí, he probado en estático y lo mismo, la única diferencia es que a mí el problema me lo da libstdc++-6.dll en lugar de sfml-window-2.dll

EDIT: El módulo que da error al compilar en estático es: ntdll.dll :huh: :-X
No creo que sea problema de los módules que den error, sino algo como lo que mencionó @ukol, la verdad es que este tipo de problemas son desconcertantes, toca enloquecer un poco a ver si damos con el fallo, que seguramente al final sea una tontería, en fin...  :xD

EDIT2: Volviendo a SFML2.0, puedo compilar tanto en estático como en dinámico, sin problemas, el problema me lo da la versión 2.1.

EDIT3: Tras juguetear mucho con las opciones del compilador, logré compilar 2.1, tanto estático como dinámico también, lo extraño es que juraría que ha funcionado de la misma forma que me daba antes error... :-\ además solo conseguí compilar en estático sfml-graphics,window y system;  audio y network me dan undefined errors, cuando tenga todo bien postearé la "solución"

EDIT4:
Cita de: X3R4CK3R en 28 Julio 2013, 04:49 AMademás solo conseguí compilar en estático sfml-graphics,window y system;  audio y network me dan undefined errors
Eso en SFML2.0, en SFML2.1 me ha compilado todo en estático perfectamente, en fin, mejor espero a que te conectes, te aconsejaría que te mudases a SFML2.1, es totalmente compatible con cualquier código en 2.0, sólo han fixeado varios bugs (como el icono en la barra de inicio, que se quedaba pillado, a mí me molestaba mucho).

Saludos

amchacon

He conseguido compilar estáticamente en SFML 2.1. Voy a ponerme con el debug y ya lo tendré todo listo ^^
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

anonimo12121

Cita de: amchacon en 28 Julio 2013, 11:58 AM
He conseguido compilar estáticamente en SFML 2.1. Voy a ponerme con el debug y ya lo tendré todo listo ^^
Como lo has configurado entonces?
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746