2

大家好,需要一些帮助让 MinGW 链接 GLFW 的库。我在网上找不到任何答案,或者说找不到任何我能理解的答案。我尝试使用 -L 指定 libs 文件夹的路径,并且我已将 lib 和 include 添加到 MinGW 中。

我什至尝试过更改库的名称。编译器从不抱怨找不到头文件,但链接器说它找不到我指定的任何库。我一直在 GLFW 的网站上,但恐怕我不太了解他们试图告诉我的内容。我在 windows7 上通过命令行使用 MinGW,因为我也无法让它与 Code::Blocks 一起使用。我已经尝试按照 opengl-tutorial.org 上的安装说明进行操作,但遗憾的是,我开始抱怨与 ANT 相关的事情,而我根本不明白。所以我认为我有更好的机会让它通过命令行工作。

我努力了:

g++ test.cpp -lglfw or g++ test.cpp -LC:\GLFW\lib -lglfw 

进入命令行。

4

2 回答 2

1

我设法让 mingw32 和 GLFW3 一起工作。

  1. 确保你有一致的库(32 或 64 位)(不是我的情况)
  2. 将 glfw3dll.a 重命名为 libglfw3dll.a
  3. 将您的 lib*.a 从 glfw 添加到 %MINGW_BASE%\lib 并将文件包含到 %MINGW_BASE%\include
  4. 使用 g++ test.cpp -lglfw3 -lopengl32 编译和链接
  5. 要运行它,请务必在 System32 或/和 SysWOW64 中添加 glfw3.dll

它对我有用

希望它会有所帮助,

于 2014-02-05T09:33:02.970 回答
1

对 GLFW3lib-mingw目录的简单调查可以回答您的问题。假设你有 GLFW3 的二进制包,来自这里(其中之一glfw-3.0.3.bin.WIN64.zipglfw-3.0.3.bin.WIN32.zip取决于你的工具链)。提取它应该已经给出了一个目录lib-mingw。该目录包含:

  • libglfw3.a
  • glfw3dll.a
  • glfw3.dll

因此库名称是glfw3而不仅仅是glfw. -lglfw3因此,当将它传递给链接器时,如果你想静态链接到它,你必须传递ie。如果您想动态链接到它,那么只需传递glfw3dll.a; 添加-l将导致链接器为其添加前缀lib和后缀.a(请参阅Django的答案)。

于 2014-02-05T09:40:08.240 回答