gpt4 book ai didi

c++ - 链接器找不到 -lglut

转载 作者:搜寻专家 更新时间:2023-10-31 01:16:55 25 4
gpt4 key购买 nike

所以。

我对 Linux 开发世界有点陌生(没有 ide),所以请耐心等待。

问题

我构建了一个 make 文件,它将大约 7-8 个文件编译成 .o 文件,然后将这些文件与一些库链接在一起。我已经定位到这些库,并且它们的开发对应物确实存在。问题是链接器拒绝找到它们。我的输出(如果我没看错的话)告诉我它看错了区域。我已经将我的 LD_PATH 导出到包括 /usr/lib,这是我的 .so. 文件所在的位置。我的主要问题是,如何让 -lglew-lglut 相互链接?我还想将我的 .o 文件放在 obj 文件夹中,将我的二进制文件放在 bin 文件夹中。这在 makefile 中可能吗?如果是这样,根据我的 make 文件,执行此操作的最佳方法是什么?

生成文件

  1 BIN = bin/
2 OBJ = obj/
3 TARGET = opengl_03
4 DEPS = main.o displayinit.o initializer.o algorithms.o matrix3f.o window.o vertex3.o
5 CC = g++
6 CFLAGS = -g -m32
7 LIBS = -lglut -lGLEW
8 INCLUDEPATH = -L/usr/include/ -L/usr/lib
9
10 $(TARGET) : $(DEPS)
11 $(CC) $(LIBS) $(INCLUDEPATH) $(CFLAGS) -o $(TARGET) $(DEPS) $(BIN)
12
13 displayinit.o : displayinit.cpp displayinit.h
14 $(CC) -c displayinit.cpp $(OBJ)
15 initializer.o : initializer.cpp initializer.h
16 $(CC) -c initializer.cpp $(OBJ)
17 algorithms.o : algorithms.cpp algorithms.h
18 $(CC) -c algorithms.cpp $(OBJ)
19 matrix3f.o : matrix3f.cpp matrix3f.h
20 $(CC) -c matrix3f.cpp $(OBJ)
21 vertex3.o : vertex3.cpp vertex3.h
22 $(CC) -c vertex3.cpp $(OBJ)
23 window.o : window.cpp window.h
24 $(CC) -c window.cpp $(OBJ)
25 main.o : main.cpp
26 $(CC) -c main.cpp $(OBJ)
27
28 clean:
29 rm $(DEPS)
30
31

输出

g++ -lglut -lGLEW  -L/usr/include/ -L/usr/lib -g -m32  -o opengl_03  main.o  displayinit.o initializer.o algorithms.o matrix3f.o window.o vertex3.o bin/
/usr/bin/ld: skipping incompatible /usr/lib/libglut.so when searching for -lglut
/usr/bin/ld: skipping incompatible /usr/lib/libglut.a when searching for -lglut
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../libglut.so when searching for -lglut
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../libglut.a when searching for -lglut
/usr/bin/ld: skipping incompatible /usr/lib/libglut.so when searching for -lglut
/usr/bin/ld: skipping incompatible /usr/lib/libglut.a when searching for -lglut
/usr/bin/ld: cannot find -lglut
/usr/bin/ld: cannot find -lGLEW
/usr/bin/ld: cannot find bin/: File format not recognized
collect2: ld returned 1 exit status
make: *** [opengl_03] Error 1

感谢您的帮助。

最佳答案

您使用的是哪个 Linux?看起来您正在使用 64 位系统,但正在尝试编译 32 位应用程序(因为 -m32 编译器开关)。因此,要么删除 -m32,要么安装 32 位开发库。它们的名称可能类似于 freeglut-32bit 或类似名称。

关于c++ - 链接器找不到 -lglut,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com