我正在用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位库。 –