/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 utiliserfile somefile
pour montrer à quel type de fichier il est. Essayezfile obj/serial.o
et de les comparer avecfile /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é
Vous devez vous connecter pour publier un commentaire.
Vous devriez avoir package
libgd-dev
(oulibgd-devel
selon le système d'exploitation/distribution) installé. La partie du paquet essentiel du lien est un lien symbolique/usr/lib/libgd.so
(généralement pointant vers/usr/lib/lib/libgd.so.2
)