0

我在 Visual Studio 10.0 上设置 GLFW 时遇到问题,我正在关注这个人的教程。但是我仍然遇到链接错误

1>GLFW.lib(window.obj) : error LNK2005: __glfwClearWindowHints already defined in window.obj
1>GLFW.lib(window.obj) : error LNK2005: __glfwClearInput already defined in window.obj
1>GLFW.lib(window.obj) : error LNK2005: __glfwInputKey already defined in window.obj
1>GLFW.lib(window.obj) : error LNK2005: __glfwInputChar already defined in window.obj
1>GLFW.lib(window.obj) : error LNK2005: __glfwInputMouseClick already defined in window.obj
1>GLFW.lib(window.obj) : error LNK2005: __glfwChooseFBConfig already defined in window.obj
1>GLFW.lib(window.obj) : error LNK2005: __glfwInputDeactivation already defined in window.obj
1>GLFW.lib(init.obj) : error LNK2005: __glfwInitialized already defined in init.obj
1>GLFW.lib(glext.obj) : error LNK2005: __glfwParseGLVersion already defined in glext.obj
1>GLFW.lib(glext.obj) : error LNK2005: __glfwStringInExtensionString already defined in glext.obj
1>GLFW.lib(glext.obj) : error LNK2005: __glfwRefreshContextParams already defined in glext.obj
1>MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library

我试过用谷歌搜索错误,但没有找到太多帮助。我在链接器设置中链接了 opengl32/lib 和 glu32.lib。我还为 include 和 lib 链接了适当的文件夹。我从 GLFW 站点下载并链接了 win32 二进制文件和原始 zip。

代码

任何帮助表示赞赏。

4

1 回答 1

0

该教程有点过时(2005 年 4 月 27 日发布)。您可能两次将一些源文件添加到两个不同的项目中,因此抱怨已经存在的符号定义。

似乎 GLFW 2.7.x 不包含用于自动构建您需要的一切的 MSVC makefile 脚本,但如果它可以选择切换到最新的 GLFW 3.0,您可以让您的生活更轻松,因为它们支持 cmake:

  • 确保同时安装了cmakegit
  • 从你的 Git Bash 运行git clone git://glfw.git.sourceforge.net/gitroot/glfw/glfw glfw
  • 然后打开 Visual Studio 命令提示符并切换到新创建的 glfw 文件夹。创建一个新的子文件夹 ( mkdir build) 并切换到这个 ( cd build)。
  • 现在运行cmake -G "Visual Studio 10 Win64" ..生成用于编译 GLFW 的项目文件。
  • 打开该项目文件并编译您需要的所有内容(只需要 GLFW 子项目)
于 2013-01-06T02:58:50.473 回答