Para compilar en Linux con g++ debemos compilar cada archivo cpp y usar el flag -I con la ruta de los Headers (.h) y con el flag -c para crear objetos. Posteriormente ensamblamos todos los objetos del proyecto en una salida.
Si tenemos la misma estructura de carpetas que en el video y nos colocamos al nivel de main.cpp, podemos compilar todo con el siguiente comando:
g++ -c -I ../Headers/include src/*.cpp main.cpp && g++ -o proyect.out *.o
Yo cree un Makefile para el proyecto y coloque en el nivel mas alto, a la misma altura que las carpetas Headers y Sources, lo dejo por si a alguien le interesa:
# using:
# make # compile proyect
# make remove # remove all binaries and objects
#
.PHONY = all clean ensamble remove
CC = g++
HEADERSDIR = ./Headers/include
SRCSDIR = ./Sources/src
MAINDIR = ./Sources
SRCS := $(wildcard ${SRCSDIR}/*.cpp)
OBJECTSRCS := ${SRCS:${SRCSDIR}/%.cpp=%.o}
all: ${OBJECTSRCS} main.o ensamble clean
ensamble: main.o
@echo "Ensambling.."
${CC} -o proyect.out *.o
%.o: ${SRCSDIR}/%.cpp
@echo "Creating object..."
${CC} -c -I ${HEADERSDIR} $<
main.o: ${MAINDIR}/main.cpp
@echo "Compiling main.cpp.."
${CC} -c -I ${HEADERSDIR} $<
clean:
@echo "Cleaning compilation..."
rm *.o
remove:
rm -fv proyect.out
rm -fv *.o
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.