Ich schreibe ein Hybridprogramm in Cpp + X86-Assembly. Das Projekt besteht aus 3 Dateien: main.cc, data.cc und a_t.asm. Ich bin mit einem Makefile (in dem ich ein absoluter Anfänger bin) fest. Es sieht wie folgt aus:Kann OpenGL-Bibliotheken nicht in Makefile verknüpfen
CC=gcc
ASMBIN=nasm
CFLAGS=-m32 -Wall
all: main.o a_t.o
$(CC) -m32 main.o a_t.o -lGL -lGLU -lglut
a_t.o:
$(ASMBIN) -f elf a_t.asm
main.o: main.cc data.cc
$(CC) $(CFLAGS) -g main.cc
clean:
rm -rf *o main
auf Befehl make ich folgendes erhalten:
gcc -m32 main.o a_t.o -lGL -lGLU -lglut
/usr/bin/ld: cannot find -lGL
/usr/bin/ld: cannot find -lGLU
/usr/bin/ld: cannot find -lglut
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
Ich habe versucht "-lGL -lGLU -lglut" Teil in unterschiedlicher Reihenfolge setzen, aber nichts gearbeitet haben. Ich habe alle drei Bibliotheken installiert und funktioniert. Ich würde Ihre Hilfe zu schätzen wissen.
Verwendet Ihr Code tatsächlich Funktionen in diesen Bibliotheken? Sieht für mich so aus, als hättest du einfach nur die Laufzeit-Bibliotheken installiert, aber nicht die Header-Dateien und die Link-Bibliotheken. Es ist nichts falsch mit Ihrem Makefile. –
Ja, tut es. Sieht so aus, als würde es nicht richtig funktionieren, wenn ich eine -m32-Markierung hinzufüge. –
Das bedeutet also, dass Sie die 32-Bit-Bibliotheken nicht installiert haben. –