我正在尝试使OpenGL正常工作,并具有与此处完全相同的问题:
c++ OpenGL undefined references

我都下载了两个软件包,并使用了相同的教程。除了我使用Ubuntu 14.04.2 LTS,而且上述解决方案无法解决我的问题。

它将问题减少到一个 undefined reference ,但仍然无法正常工作:

g++ -Wall -lGL -o cube main.cpp imageloader.cpp -lglut -lGLU
...
/usr/bin/ld: /tmp/ccWzhHjf.o: undefined reference to symbol 'glTexImage2D'
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1: error adding symbols: DSO missing from
command line collect2: error: ld returned 1 exit status make: *** [cube] Error 1

我该如何解决这个问题?

最佳答案

编辑制作文件并将其更改为此

  CC = g++
CFLAGS = -Wall -lGL
PROG = cube

SRCS = main.cpp imageloader.cpp

ifeq ($(shell uname),Darwin)
    LIBS = -framework OpenGL -framework GLUT
else
    LIBS = -lglut -lGLU
endif

all: $(PROG)

$(PROG):    $(SRCS)
    $(CC) $(CFLAGS) -o $(PROG) $(SRCS) $(LIBS)

clean:
    rm -f $(PROG)

我所做的是将-lGL添加到CFLAGS,将-lGLU添加到LIBS到标志,以便它可以与所需的库链接

10-06 06:31