Al compilar una aplicación SFML,
g++ -c main.cpp para compilar y crear el archivo objeto.g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-systemPude compilar y ejecutar con éxito mi primera aplicación, pero ¿no podemos acortar este proceso? Quiero decir, ¿tengo que escribir esto cada vez que compilo y hago una aplicación?
También tengo esta pregunta sobre la compilación de archivos C++ en general. Cada vez que tengo que escribir g++ filename.cpp -o filename . ¿Cómo puedo acortar este proceso? Gracias.
Es muy común usar un Makefile en Linux . El Makefile es más simple si nombra su archivo fuente principal de la misma manera que desea que se llame su programa terminado.
Entonces, si cambia el nombre de su archivo main.cpp a sfml-app.cpp y luego crea un archivo llamado Makefile y copia este texto en él:
# optional flags (if the compiler supports it) CXXFLAGS += -std=c++11 # HIGHLY RECOMMENDED flags CXXFLAGS += -Wall -Wextra -pedantic-errors # required for SFML programs LDLIBS := $(shell pkg-config sfml-all --libs) # The rest will turn any source file ending in .cpp # into a program of the same name SOURCES := $(wildcard *.cpp) PROGRAMS := $(patsubst %.cpp,%,$(SOURCES)) all: $(PROGRAMS) clean: $(RM) $(PROGRAMS) Escriba: make para compilar los programas y make clean para eliminarlos.
Nota: La sangría del comando $(RM) $(PROGRAMS) debe ser un TAB , no espacios.
Si desea compilar otro programa en el mismo directorio, simplemente cree otro archivo fuente en el directorio another-app.cpp y make lo convertirá automáticamente en un programa.
Este Makefile convertirá cualquier archivo fuente (que termine en .cpp) en un programa del mismo nombre.
Nota: cuando desee crear programas más grandes con varios archivos, necesitará un Makefile diferente. Si te tomas en serio la programación, entonces deberías aprender make .
Aquí puedes aprender todo sobre make .
Puede escribir un script .sh que ejecute los comandos:
g++ -c main.cpp g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-systemUna solución es utilizar la herramienta de automatización de compilación. Existen muchas herramientas diferentes, cada una con puntos fuertes y débiles.
Personalmente, para proyectos pequeños, uso Make. Escribes en un archivo, llamado Makefile, reglas que describen la relación entre archivos y cómo realizar cada paso. Por ejemplo, el Makefile mínimo para su proyecto será:
sfml-app: main.o g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system main.o: main.c g++ -c main.cppEste archivo se encuentra en la raíz del proyecto. Solo tiene que ingresar el comando "hacer" para iniciar la compilación. Si lo desea, encontrará mucha documentación en Internet. consulte https://en.wikipedia.org/wiki/Make_%28software%29 Lo animo a leer sobre el archivo MAKE para usarlo correctamente y poder usar su poder.
Además, alguien puede recomendarle que use otra herramienta de automatización de compilación: ¡es una elección personal! Encontrará una lista de herramientas existentes aquí (no exhaustiva): https://en.wikipedia.org/wiki/List_of_build_automation_software