OpenGL GLFW:对“glfwInit”的未定义引用

新手上路,请多包涵

我只是想让 OpenGL 使用 GLFW 在我的机器(Windows 7 64 位)上运行。

我收到了单数链接器错误:

 undefined reference to 'glfwInit'.

我试图编译的代码是最简单的(在文件 Test.cpp 中)。

 #include <iostream>
#include <GLFW/glfw3.h>
int main()
{
    std::cout << "hello world" << std::endl;
    glfwInit();
    return 0;
}

我正在使用一个简单的 Makefile 来尝试编译:

 Test: Test.o
    g++ -o Test  -L./lib -lglew32 -lglfw3 -lopengl32 -lglu32 -lgdi32 Test.o

Test.o: Test.cpp
    g++ -I./include -c Test.cpp

附加信息:

  • 使用g++编译(MinGW32)
  • lib 文件夹包含 glfw3.dll、libglfw3.a 和 libglfw3dll.a(从 GLFW 网站下载的 Win32 版本 - Windows 预编译库)
  • 包含文件夹包含一个名为 GLFW 的文件夹,其中包含 glfw3.h 和 glfw3native.h(来自下载的 GLFW - 包含文件夹)

我努力了:

原文由 Matt Martin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
1 个回答

终于在 几个 小时后发现了我的问题。

将 libglfw3.a 文件留在与 glfw3.dll 相同的目录中(如果尝试动态链接)会混淆链接器。如果动态链接,请删除它 - 您只需要 dll 和 /include 文件夹。

另外,添加

#define GLFW_DLL

如果与 DLL 链接,则在 include 语句上方。

原文由 Matt Martin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题