我正在用Cpp + x86程序集編寫混合程序。該項目由3個文件組成:main.cc,data.cc和a_t.asm。我堅持使用makefile(我是一個初學者)的一部分。它看起來像這樣:無法在makefile中鏈接opengl庫
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
在make命令我得到如下:
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
我試圖把「-lGL -lGLU -lglut」部分以不同的順序,但沒有工作過。我安裝了所有三個庫並正在工作。 我將不勝感激您的幫助。
你的代碼是否真的使用這些庫中的函數?在我看來,你只需要安裝運行時庫,而不是頭文件和鏈接庫。你的makefile沒有問題。 –
是的,它的確如此。看起來當我添加-m32標誌時,它停止正常工作。 –
那意味着你沒有安裝32位庫。 –