为什么我必须手动将OpenGL lib与MinGW链接?

时间:2017-03-30 12:06:04

标签: c windows opengl gcc mingw

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

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

我想避免手动链接每个OpenGl lib的痛苦,从而找到一种方法让MinGW明白 glut32,openGL32,glu32 都位于 C:\ MinGW \ lib

我尝试在MinGW官方文档后设置以下窗口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库。

所以我想知道是否

  
      
  • 手动链接所有包含的lib是OpenGL Lib的义务吗?
  •   
  • 如果是,为什么会这样?
  •   
  • 如果没有,我怎么能解决我的问题并迫使MinGW找到它们?
  •   

干杯

1 个答案:

答案 0 :(得分:2)

以下命令并不告诉gcc使用任何库构建,只是在哪里找到它们。

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

你必须包含-l [libraryname]选项,否则,如何知道你想要链接哪些库,就像你必须告诉它想要构建哪些源文件或目标文件一样用。