SFML community forums

General => SFML website => Topic started by: MeCraniDOS on August 09, 2013, 02:12:22 pm

Title: [Input] Compile SFML -> Spanish Tutorial
Post by: MeCraniDOS on August 09, 2013, 02:12:22 pm

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

Title: Re: [Input] Compile SFML -> Spanish Tutorial
Post by: zsbzsb on August 09, 2013, 05:06:55 pm
You should put this on the wiki, not in the website section.

Also I do not like in your tutorial how you copy files to System32 folder. This is not a good idea due to the easy mistakes of deleting the wrong file or overwriting something else.

Another thing is that you should have a section for setting up SFML in C::B for debug, not just release.