Post Original: http://foro.elhacker.net/programacion_cc/aporte_compilar_sfml_estaticamente-t396527.0.html (http://foro.elhacker.net/programacion_cc/aporte_compilar_sfml_estaticamente-t396527.0.html)
Hola a todos, he hecho este tutorial con la intención de ayudar a los que no saben como instalar SFML, debido a que a mi me dio muchos errores la instalación.
Este tutorial consta de 50 imagenes perfectamente explicadas, para facilitar la instalación.
Bien, comencemos:
Lo primero será descargar el código fuente de SFML y CMake para compilar las Librerías
Codigo Fuente: http://www.sfml-dev.org/download/sfml/2.1/SFML-2.1-sources.zip (http://www.sfml-dev.org/download/sfml/2.1/SFML-2.1-sources.zip)
CMake: http://www.cmake.org/files/v2.8/cmake-2.8.11.2-win32-x86.exe (http://www.cmake.org/files/v2.8/cmake-2.8.11.2-win32-x86.exe)
(http://imageshack.us/a/img547/6237/p28o.png)
(http://imageshack.us/a/img90/9643/it8e.png)
Una vez descargado, procedemos a la instalación de CMake como se muestra en las siguientes imágenes.
(http://imageshack.us/a/img801/3059/gz4x.png)
(http://imageshack.us/a/img12/5852/ia3n.png)
(http://imageshack.us/a/img208/8408/gzdo.png)
(http://imageshack.us/a/img827/8839/fxil.png)
Una vez instalado, extraemos el contenido del zip "SFML-2.1-sources.zip", en C:// de la siguiente manera:
(http://imageshack.us/a/img577/2752/0u8e.png)
(http://imageshack.us/a/img600/1688/07ko.png)
Se creará una carpeta llamada SFML-2.1, entramos en ella y creamos otra carpeta llamada "Build".
(http://imageshack.us/a/img580/2034/otsy.png)
Abrimos CMake, ponemos las rutas de los códigos y del Build y le damos a "Configure".
(http://imageshack.us/a/img827/329/d1x.png)
Elegimos el compilador que usamos.
(http://imageshack.us/a/img202/6499/b6us.png)
Seleccionamos la opción que he marcado y hacemos click en Next.
(http://imageshack.us/a/img6/1471/xob.png)
Copiamos la carpeta del compilador (MinGW) a C://.
(http://imageshack.us/a/img153/6933/1e1d.png)
(http://imageshack.us/a/img62/6490/rxz3.png)
Seleccionamos la ruta de gcc y g++, hacemos click en Finish, y después de esto, se pondrá a configurar, esperamos a que acabe.
(http://imageshack.us/a/img534/4996/upys.png)
(http://imageshack.us/a/img51/6908/jodi.png)
Una vez configurado, desmarcamos todo y marcamos la ultima opción como en la imagen, y le volvemos a dar a Configure.
(http://imageshack.us/a/img96/1739/3m4i.png)
Hacemos click en generate y...
(http://imageshack.us/a/img138/3807/cpq3.png)
Listo, ya podemos cerrar CMake.
(http://imageshack.us/a/img209/5571/dmj.png)
Apretamos Tecla Windows + R, para abrir Ejecutar, o Inicio -> Ejecutar, y escribimos cmd.
(http://imageshack.us/a/img405/4456/n3ii.png)
Navegamos por los directorios para llegar a la carpeta donde estaba la carpeta Build.
(http://imageshack.us/a/img203/6763/ocpt.png)
Una vez ahí, vamos a la carpeta de MinGW\bin, y copiamos todo el contenido en WINDOWS\System32, y no hacemos click en esa carpeta para luego poder borrar los archivos que me hemos copiado sin cambiar nada.
(http://imageshack.us/a/img32/2120/tsrb.png)
(http://imageshack.us/a/img600/2388/xlnp.png)
Finalmente, escribimos "mingw32-make" y se pondrá generar los archivos que van en la carpeta "lib".
(http://imageshack.us/a/img441/4485/s16m.png)
(http://imageshack.us/a/img824/5978/kssn.png)
(http://imageshack.us/a/img703/1215/3x1g.png)
(http://imageshack.us/a/img24/4979/7ca4.png)
Una vez generados, escribimos exit en la consola y ya podemos borrar el contenido de System32 que acabábamos de copiar.
(http://imageshack.us/a/img823/4257/7ltz.png)
(http://imageshack.us/a/img841/2577/m8fl.png)
Dentro de la carpeta Build, la unica que nos interesa es la carpeta lib.
(http://imageshack.us/a/img51/2867/xk53.png)
La copiamos al escritorio junto con la carpeta include que esta en la carpeta SMFL-2.1 (saliendo de Build).
(http://imageshack.us/a/img692/4829/gllw.png)
Renombramos la carpeta lib por SFML y la copiamos en la carpeta lib, de MinGW, en la ruta de instalación de Code::Blocks, y copiamos el contenido de la carpeta include (la del escritorio), a la carpeta de include de MinGW, en la ruta de instalación de Code::Blocks
(http://imageshack.us/a/img690/3069/dve2.png)
(http://imageshack.us/a/img826/8564/733r.png)
Ya podemos cerrarlo todo y abrir Code::Blocks
Creamos un nuevo proyecto de Consola y seguimos los siguientes pasos.
(http://imageshack.us/a/img818/9652/cm33.png)
Desmarcamos Debug y Finish.
(http://imageshack.us/a/img198/9655/aju.PNG)
Nos vamos a Build Options y hacemos exactamente lo siguiente.
(http://imageshack.us/a/img138/3589/kjvb.png)
Añadir SFML_STATIC, en Compiler Settings -> #defines
(http://imageshack.us/a/img69/1038/m8ko.png)
Vamos a Linker Settings y añadimos el contenido de la carpeta "lib" que hemos renombrado por "SFML", y que hemos puesto en la ruta de Code::Blocks
(http://imageshack.us/a/img534/355/ij1d.png)
Lo añadimos todo.
(http://imageshack.us/a/img96/7427/dc58.png)
Y quedará así.
(http://imageshack.us/a/img18/8577/8t7d.png)
Ahora lo renombramos hasta que quede ordenador así, tenemos que borrar de ahí el archivo "libsfml-main.a"
(http://imageshack.us/a/img835/5043/qmwg.png)
Una vez hecho, nos vamos a Search Directories, en Compiler añadimos la ruta de los include, que hemos copiado en la ruta de Code::Blocks
(http://imageshack.us/a/img28/5829/05ac.png)
En Linker, copiamos la ruta de los lib, que hemos copiado en la ruta de Code::Blocks, y le damos OK.
(http://imageshack.us/a/img18/6579/gzgv.png)
Nos vamos a las propiedades del proyecto y seleccionamos GUI Application para que desaparezca la consola.
(http://imageshack.us/a/img707/5619/s27s.png)
Una vez hecho eso, copiamos el siguiente código, y lo pegamos en nuestro main.cpp.
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
(http://imageshack.us/a/img802/1620/kpyw.png)
Si todo es correcto, al apretar F9, saldrá una ventana así.
(http://imageshack.us/a/img594/4605/j07e.png)
Cerramos la ventana y nos vamos a File->Save projecta as template.
(http://imageshack.us/a/img843/286/1mu.png)
Le ponemos el titulo que queramos, y le damos OK.
(http://imageshack.us/a/img849/7715/zxdq.png)
La plantilla se ha guardado con éxito.
(http://imageshack.us/a/img837/7664/qp2s.png)
Listo, ya tenemos SFML instalado en Code::Blocks, ahora cada vez que queramos usarlo, solo seleccionen la plantilla que hemos creado y a programar.
Espero que se entienda. 8) 8)
Saludos.
Agradecimiento a amchacon, que fue él quien me lo explicó a mi. ;D