C++ - Hur modifierar jag Denna Make-fil på Rätt Sätt? [LÖST]

Permalänk
Medlem

C++ - Hur modifierar jag Denna Make-fil på Rätt Sätt? [LÖST]

Hej,

Jag använder mig av detta VS Code-plugin:
C-Cpp-Makefile-Project

och för en make-fil skapad av den avsedd för C++-projekt undrar jag hur jag ändrar den så att den exekverbara filen hamnar i en "bin"-mapp? Det borde göra det enklare att exkludera den exekverbara filen i .gitignore.

Nedan är min nuvarande projektstruktur:

och min kompletta make-fil (skapad av plugin-programmet från ovan):

######################################################################## ####################### Makefile Template ############################## ######################################################################## # Compiler settings - Can be customized. CC = g++ CXXFLAGS = -std=c++20 -Wall LDFLAGS = # Makefile settings - Can be customized. APPNAME = prime_benchmark EXT = .cpp SRCDIR = src OBJDIR = obj ############## Do not change anything from here downwards! ############# SRC = $(wildcard $(SRCDIR)/*$(EXT)) OBJ = $(SRC:$(SRCDIR)/%$(EXT)=$(OBJDIR)/%.o) DEP = $(OBJ:$(OBJDIR)/%.o=%.d) # UNIX-based OS variables & settings RM = rm DELOBJ = $(OBJ) # Windows OS variables & settings DEL = del EXE = .exe WDELOBJ = $(SRC:$(SRCDIR)/%$(EXT)=$(OBJDIR)\\%.o) ######################################################################## ####################### Targets beginning here ######################### ######################################################################## all: $(APPNAME) # Builds the app $(APPNAME): $(OBJ) $(CC) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) # Creates the dependecy rules %.d: $(SRCDIR)/%$(EXT) @$(CPP) $(CFLAGS) $< -MM -MT $(@:%.d=$(OBJDIR)/%.o) >$@ # Includes all .h files -include $(DEP) # Building rule for .o files and its .c/.cpp in combination with all .h $(OBJDIR)/%.o: $(SRCDIR)/%$(EXT) $(CC) $(CXXFLAGS) -o $@ -c $< ################### Cleaning rules for Unix-based OS ################### # Cleans complete project .PHONY: clean clean: $(RM) $(DELOBJ) $(DEP) $(APPNAME) # Cleans only all files with the extension .d .PHONY: cleandep cleandep: $(RM) $(DEP) #################### Cleaning rules for Windows OS ##################### # Cleans complete project .PHONY: cleanw cleanw: $(DEL) $(WDELOBJ) $(DEP) $(APPNAME)$(EXE) # Cleans only all files with the extension .d .PHONY: cleandepw cleandepw: $(DEL) $(DEP)

Jag frågar då jag inte vet alls hur jag skulle genomföra det ovan beskrivna; googling har inte hjälpt mig.

Permalänk
Medlem

Jag skulle tips om att lära dig hur makefiles fungerar och kanske skriva en lätt makefile själv efter det borde du kika på dokumentationen för kompilatorn. Jag tror att en del blir komplicerat pga automatiska variabler som du hittar dokumentationen till här: https://www.gnu.org/software/make/manual/html_node/Automatic-...

Varför skulle det vara lättare att exkludera binären från git om den ligger i en katalog som heter "bin" istället för att bara ignorera APPNAME?

Permalänk
Medlem
Skrivet av orp:

Jag skulle tips om att lära dig hur makefiles fungerar och kanske skriva en lätt makefile själv efter det borde du kika på dokumentationen för kompilatorn. Jag tror att en del blir komplicerat pga automatiska variabler som du hittar dokumentationen till här: https://www.gnu.org/software/make/manual/html_node/Automatic-...

Varför skulle det vara lättare att exkludera binären från git om den ligger i en katalog som heter "bin" istället för att bara ignorera APPNAME?

Var bara en tanke. Tack för synpunkten.