为什么我必须使用 MinGW 手动 link OpenGL 库?

Why do i have to link OpenGL lib manually with MinGW?

我有以下 gcc 命令可以正常工作:

gcc -Wall -g hello_gl.c -lglut32 -lopengl32 -lglu32 -o hello_gl && hello_gl

我想避免手动 link 每个 OpenGl 库的痛苦,从而找到一种方法让 MinGW 理解 glut32、openGL32、glu32 都是位于 C:\MinGW\lib .

我尝试根据 MinGW 官方文档设置以下 windows envar :

CPATH        = C:\MinGW\include
LIBRARY_PATH = C:\MinGW\lib

但是当我尝试简单地 运行 时:

gcc -Wall -g hello_gl.c -o hello_gl && hello_gl

MinGW 找不到 OpenGL 库。

我也尝试在 gcc 命令中强制 lib 路径:

gcc -Wall -g -IC:\MinGW\include hello_gl.c -LC:\MinGW\lib -o hello_gl && hello_gl

但是 MinGW 还是找不到 OpenGL 库。

所以我想知道

  • Linking manually all lib included is an obligation with OpenGL Lib ?
  • If yes why is that so ?
  • If not how could i do to solve my problem and force MinGW to find them ?

干杯

下面的命令不会告诉 gcc 使用任何库进行构建,只是告诉在哪里可以找到它们。

gcc -Wall -g -IC:\MinGW\include hello_gl.c -LC:\MinGW\lib -o hello_gl && hello_gl

你必须包含 -l[libraryname] 选项,否则,它怎么知道你想 link 使用哪些库,就像你必须告诉它哪个来源或您要构建的目标文件。