/usr/bin/ld: ne peut trouver -lgd

Donc je suis en train de compiler un programme utilisant make-f Makefile mais j'obtiens cette erreur /usr/bin/ld: ne peut trouver -lgd

root@kevin-VirtualBox://home/kevin/Desktop/makef# make -f Makefile
gcc -o main obj/main.o obj/serial.o obj/fb.o obj/menu_main.o obj/timer.o obj/cmdin.o obj/buzzer.o obj/statemachine.o obj/inout.o obj/network.o obj/text_file_input.o obj/text_file_input_oven.o -I./ -lgd -lrt
/usr/bin/ld: cannot find -lgd
collect2: ld returned 1 exit status
make: *** [main] Error 1
root@kevin-VirtualBox://home/kevin/Desktop/makef# 

Makefile:

IDIR =./
CC=gcc
CFLAGS=-I$(IDIR)

ODIR=obj
LDIR =./

LIBS=-lgd -lrt

_DEPS = main.h Makefile
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))

_OBJ = main.o serial.o fb.o menu_main.o timer.o cmdin.o buzzer.o statemachine.o inout.o network.o text_file_input.o text_file_input_oven.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))


$(ODIR)/%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)

main: $(OBJ)
    gcc -o $@ $^ $(CFLAGS) $(LIBS)

.PHONY: clean

clean:
    rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~ 

après le remplacement (libgd.un libgd.la libgd.donc libgd.donc.2 libgd.donc.2.0.0) j'obtiens cette erreur:

root@kevin-VirtualBox://home/kevin/Desktop/makef# make -f Makefilegcc -o main obj/main.o obj/serial.o obj/fb.o obj/menu_main.o obj/timer.o obj/cmdin.o obj/buzzer.o obj/statemachine.o obj/inout.o obj/network.o obj/text_file_input.o obj/text_file_input_oven.o -I./-lgd -lrt
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libgd.so when searching for -lgd
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libgd.a when searching for -lgd
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libgd.so when searching for -lgd
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libgd.a when searching for -lgd
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../libgd.so when searching for -lgd
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../libgd.a when searching for -lgd
/usr/bin/ld: skipping incompatible /usr/lib/libgd.so when searching for -lgd
/usr/bin/ld: skipping incompatible /usr/lib/libgd.a when searching for -lgd
/usr/bin/ld: cannot find -lgd
collect2: ld returned 1 exit status
make: *** [main] Error 1
  • Vous devez l'installer sur votre système.
  • Où est libgd.a effectivement placés? Avez-vous manqué de la spécification d'une bibliothèque supplémentaire chemin de recherche à l' -L option??
  • libgd.un est sur /de/usr/bin & //utilisation de/lib
  • On dirait que vous avez du mal libgd fichier - ils sont x86-64 variante, et il semblerait que vous n'êtes pas de la compilation de 32 bits x86? Vous pouvez utiliser file somefile pour montrer à quel type de fichier il est. Essayez file obj/serial.o et de les comparer avec file /usr/lib/libgd.so.2 ou autre - il doit montrer ce que l'architecture c'est compilé pour - je parie que c'est différent!
  • salut nattes, il est obj/série.o: ELF 64-bit LSB amovibles, x86-64, version 1 (SYSV), non dénuée /usr/lib/libgd.donc.2: ELF 32-bit LSB objet partagé, BRAS, version 1 (SYSV), liée de façon dynamique, dépouillé
InformationsquelleAutor kevin ver | 2014-04-15