2016-04-23 13 views
0

Hier ist meine Header-DateiWie erstelle ich Makefile für dieses

#include <stdio.h> 
#include <stdlib.h> 
#include "gd.h" 
#include "gdfontmb.h" 
#include "gdfontl.h" 
#include "gdfontg.h" 

Als ich dieses Programm ausführen in der Regel Ich tippe ‚gcc -o Test test.o -Im -lpng -lgd‘ Es funktioniert gut für nur eine .c-Datei, aber das ist nur zum Testen. Ich möchte diese mit anderen verknüpfen c in meinem Projekt-Datei (Eigentlich bin ich wirklich neue gd.h zu verwenden)

Hier ist mein Makefile (aber es ist nicht funktionieren !!)

ifeq ($(OSTYPE),WINDOWS) 
    EXECEXT =.exe 
    COMP =__MINGCC__ 
    PLATFORM =mingw 
else 
    EXECEXT = 
    COMP =__GCC__ 
    PLATFORM =linux 
endif 

EXECUTABLES= test$(EXECEXT) 

all : $(EXECUTABLES) 

test.o : test.c 
    gcc -c test.c 

test$(EXECEXT) : test.o 
    gcc -o test$(EXECEXT) test.o -lm -lpng -gd 

clean : 
    -rm *.o 
    -rm $(EXECUTABLES) 

Mit diesem Makefile habe ich alle Fehler über undefinierten Verweis auf was auch immer in der Gd-Bibliothek. Was habe ich falsch gemacht und wie kann ich das beheben?

+1

Veröffentlichen Sie den tatsächlichen Fehler, den Sie erhalten. "undefinierter Verweis auf was auch immer" hilft uns nicht, Ihr Problem zu lösen. – viraptor

+3

Meine Kristallkugel sagt mir '-gd' soll' -lgd' sein – WhozCraig

Antwort

0

Ihr eigener cc-Befehl gibt bereits die Antwort. Du brauchst -lgd, nicht -gd.

z. set im Start:

LIBS=-lm -lpng -lgd 
CC=gcc 

(letzteres als auch den vollständigen OS-abhängigen Weg sein kann, und dann sollte die CC Teil des OS-spezifischen Teils sein, und als vollständiger Pfad angegeben werden).

und ändern Sie die gcc Linie später

$(CC) -o test$(EXECEXT) test.o $(LIBS) 

Und die Regel für test.o ist (in der Regel) nicht wirklich notwendig, da es sich um eine Standardmethode ist eine .o-Datei aus einer C-Datei zu machen .

Verwandte Themen