通常,您会形成一种在您开发的平台上发现这些东西的直觉。确实很糟糕。
例如,在我的 Debian 开发系统上,我会首先检查pkg-config我想要的库。
pkg-config --list-all | less -i
Run Code Online (Sandbox Code Playgroud)
看起来有一个名为 的包gl。因此,您可以使用以下方法获取链接器标志pkg-config:
pkg-config --libs gl
pkg-config --cflags gl
Run Code Online (Sandbox Code Playgroud)
然后你可以将其放入你的 Makefile 中:
gl_cflags := $(shell pkg-config --cflags gl)
gl_libs := $(shell pkg-config --libs gl)
override CFLAGS += $(gl_cflags)
override LIBS += $(gl_libs)
my_app: my_app.o
$(CC) $(LDFLAGS) -o $@ $^ (LIBS)
Run Code Online (Sandbox Code Playgroud)
这并不适用于所有库,仅适用于那些已.pc安装文件的库。例如,它不适用于 LibJPEG。在这些情况下,您要么记住标志 ( -ljpeg),要么使用 Autoconf / CMake / 等配置脚本在配置时发现标志。
而且,如果您没有安装库的开发版本,那么这一切都不起作用。
sudo apt-get install libgl1-mesa-dev
Run Code Online (Sandbox Code Playgroud)
PS GLU 有点过时了。