看起来缺少的符号来自
libdl。
作为额外的奖励,我将给您一个Makefile。请记住要使用制表符缩进,不能缩进,否则Makefile将不起作用。
all: outclean: rm -f out *.o.PHONY: all cleanCXX = g++CPPFLAGS =CXXFLAGS = -std=c++11 -Wall -Wextra -gLIBS = -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -pthread -lXi -ldlLDFLAGS =out: main.o $(CXX) $(LDFLAGS) -o $@ $^ $(LIBS)
但是,如果使用,会容易得多
pkg-config。我不知道正确的命令是什么(我现在不在Linux上,所以我无法检查),但是它看起来像这样:
packages = glfw3CPPFLAGS := $(shell pkg-config --cflags $(packages))LIBS := $(shell pkg-config --libs $(packages))
这样,您甚至不必知道自己需要
-ldl,因为
pkg-config它将为您解决。这是标准的处理方式。
尝试
pkg-config --libs glfw3自己运行以查看输出。如果尚未安装,请运行
sudo apt-get install pkg-config。



