Ich möchte Makefile für meine statische Bibliothek haben, wo ich es als Programm erstellen kann, um einfachen Selbsttest durchzuführen. Mein aktueller Makefille sieht aus wie folgt:Makefile für statische Bibliothek mit Selbsttest-Fähigkeit
OBJECTS = sm3.o ./core/sm3_internal.o
INCLUDES = -I. -I./core
CFLAGS = -g -Wall -O3
CC = c99
OUT = libsm3.a
%.o: %.c
$(CC) -c -o [email protected] $< $(CFLAGS) $(INCLUDES)
$(OUT): $(OBJECTS)
ar rcs $(OUT) $(OBJECTS)
Bei meiner Hauptbibliotheksdatei Ich habe:
#ifdef TEST
main(int argc, int* argv[])
{
//my self-test logic here
}
#endif
Wo soll ich -DTEST Flagge hinzufügen? Wenn ich es CFLAGS hinzufügen und dann Zeile hinzu:
test: $(OBJECTS)
Bibliothek würde auch mit Haupt bauen sein, was offensichtlich nicht etwas ist, was ich will.
Warum setzen Sie das Testprogramm nicht in einer separaten Quelldatei? – immibis
@immibis kein besonderer Grund, es schien eine gute Idee zu sein, Bibliothek auf diese Weise zu validieren – adamws