【问题标题】:Why do i have to link OpenGL lib manually with MinGW?为什么我必须手动将 OpenGL 库与 MinGW 链接?
【发布时间】:2017-03-30 12:06:03
【问题描述】:

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

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

我想避免手动链接每个 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 库。

所以我想知道

  • 手动链接所有包含的 lib 是 OpenGL Lib 的义务?
  • 如果是,为什么会这样?
  • 如果不是,我该如何解决我的问题并强制 MinGW 找到它们?

干杯

【问题讨论】:

  • 有这么多不同类型的应用程序,如果任何编译器都遵循您的想法,那么每个库都应该自动添加到任何项目中。那性能太低了。此外,如果您有不同的库,您知道为什么,它会与其他目录中具有相同名称的“自动”库混淆。
  • 谢谢 Ripi2,确实有道理。
  • 我怀疑您之所以问这个问题是因为您手动输入构建命令并希望节省输入时间。考虑改用 make 之类的构建系统,或者至少使用构建脚本。
  • 完全是我手动输入的 :) 基本上一个构建脚本将是一个包含 gcc 命令的 bash 文件?我猜这个的专业版会开始写makefile吗?你说的对 !谢谢你的建议。

标签: c windows opengl gcc mingw


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢 Chris,所以我必须手动包含 lib 和 -l 来告诉 gcc 我想用它们构建。没有选择!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多