En esta entrada vamos a escribir un programa sencillo en SFML que simplemente muestra una ventana.
Aunque tengamos instalado un IDE como Code::Blocks es recomendable hacer pruebas con los compiladores directamente, en nuestro caso vamos a escribir un programa con la librería SFML y compilarlo con g++ por consola o terminal linux, es una manera de comprobar que todo este bien para el desarrollo de nuestros programas. Mas adelante lo haremos con Code::Blocks.
Para compilar, enlazar y crear un ejecutable con C++ y SFML con el compilador GNU g++ sobre Linux, debemos hacer principalmente lo siguientes pasos:
1) Escribir el programa fuente en un editor de texto (por ejemplo gedit) y guardarlo con extensión .cpp
2) Compilar la fuente con el comando g++ -c. Esto crea el archivo objeto con extension .o
3) Enlazar las librerías al archivo objeto y crear la aplicación ejecutable
4) Ejecutar el programa
1-Escribir el programa con editor de texto y guardarlo como ventana.cpp
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "intellvirtual");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.display();
}
return 0;
}
2-Compilar el archivo fuente con el siguiente comando:
g++ -c ventana.cpp
Debemos tener 2 archivos en la carpeta: ventana.cpp y ventana.o
3- Enlazamos el archivo objeto para generar el ejecutable y le damos el nombre ventana-app:
g++ ventana.o -o ventana-app -lsfml-graphics -lsfml-window -lsfml-system
Ahora debemos tener 3 archivos ventana.cpp, ventana.o y ventana-app
Si damos doble clic sobre ventana-app se ejecutara el programa.
Si lo queremos ejecutar por consola introducimos el siguiente comando:
./ventana-app
El resultado:
Podemos probar dibujar un circulo azul en esa ventana para ello copia el siguiente código y dale un nombre al archivo con extensión cpp y repite los pasos anteriores:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "IntellVirtual!");
sf::CircleShape circulo(50.f);
circulo.setFillColor(sf::Color::Blue);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(circulo);
window.display();
}
return 0;
}
El resultado:
Muchas gracias :)
ResponderEliminarDe verdad muchas gracias, Me funciono y lo mejor que es paso a paso, específico.
ResponderEliminarPuedes probrar también lo siguiente: g++ ventana.cpp -o ejecutable -lsfml-graphics -lsfml-window -lsfml-system
ResponderEliminarY para ejecutarlo: ./ejecutable
Gracias por el aporte
Eliminar