Hej!
Har suttit och pillat lite med makefiler idag efter ett låååångt uppehåll från programmeringen.
Hade tidigare skrivit ett litet C++ konsolprogram som ansluter till en mySQL databas och hämtar lite bös.
Tänkte underlätta kompileringen av detta nu när jag började pilla igen och skapade mig en sk Makefile enl. nedan:
# Här sätter vi variabeln CC till vilken kompilator som ska nyttjas
CC=g++
# Här meddelar vi kompilatorn att variabeln CFLAGS kommer innehålla de
# parametrar vi vill använda för att kompilera vårt projelkt.
CFLAGS=`mysql_config --include --libs`
all: main
main: lon.o funktioner.o
$(CC) lon.o funktioner.o -o lon $(CFLAGS)
lon.o: lon.cpp
$(CC) -c lon.cpp
funktioner.o: funktioner.cpp
$(CC) -c funktioner.cpp
clean:
rm -rf *.o
Fråga1: Är den korrekt? I min värld så ska den avbryta efter man har kört "make all", vilket den inte gör. Den fortsätter och kompilerar lon.cpp, samt funktioner.cpp också. Jag kan köra den i sin helhet (och då få allt kompilerat två gånger känns det som, samt de valda filerna för sig utan problem om jag anger att bara kompilera dem).
Fråga2: Kikar man in CFLAGS ibörjan så har ni vad jag skickar med till g++ för att kompileringen ska gå igenom. Om jag väljer att placera CFLAGS innan filerna som ska kompileras så funkar det ej. Någon som har koll på varför inte?
Fråga3: -Wall = ?? Har sett det massa, men har ingen koll på vad det gör när man skickar det till g++?
[edit] Fråga3 är besvarad nedan... tackar!
Thnx..