No hay una estructura de directorios específica o requerida.
Puede configurarlo de todos modos que desee. Tu problema es simple de resolver. Simplemente indique a Makefile que busque subdirectorios o que coloque objetos compilados en subdirectorios en lugar de usar solo el directorio actual.
Usted sólo tiene que utilizar en caminos Makefile:
%.o : %.cpp
reemplazar con
bin/%.o : %.cpp
Por lo tanto, se comprobará si el archivo binario en el directorio bin
existe y así sucesivamente, se puede aplicar la misma a lugares donde se compilan los archivos
Hay formas de agregar/quitar/modificar rutas de archivos fuente y objeto.
Tenga una mirada en gnu make manual, concretamente en la sección 8.3 Funciones para nombres de archivo, y la anterior que 8.2 Funciones de cadena de sustitución y Análisis.
Puede hacer cosas como:
obtener una lista de los objetos de la lista de archivos de origen en el directorio actual:
OBJ = $(patsubst %.cpp, %.o, $(wildcard *.cpp))
Salida:
Application.o Market.o ordermatch.o
Si los objetos binarios están en el subdirectorio bin
pero el código fuente está en el directorio actual, puede aplicar el prefijo bin
a los archivos de objetos generados:
OBJ = $(addprefix bin/,$(patsubst %.cpp, %.o, $(wildcard *.cpp)))
Salida:
bin/Application.o bin/Market.o bin/ordermatch.o
Y así sucesivamente.
¿Tiene un Makefile actualmente? Si es así, puede considerar publicarlo para obtener retroalimentación específica. –
use el comando Make VPATH = ../lib: ./ include hará que el encabezado esté disponible en su directorio de pruebas –