【问题标题】:How to link OpenGl in Visual C++ 2010 Express?如何在 Visual C++ 2010 Express 中链接 OpenGL?
【发布时间】:2011-07-28 15:35:16
【问题描述】:

我想使用 OpenGL 进行图形编程,我下载了广受推荐的 Neon Helium 教程。但是,当我尝试构建时(我使用的是 Visual C++ Express),我得到了以下错误:

错误 LNK2005:_WinMain@16 已在课程 1.obj 中定义 错误 LNK2005:“long _stdcall WndProc(struct HWND_ *,unsigned int,unsigned int,long)”(?WndProc@@YGJPAUHWND__@@IIJ@Z) 已在课程 1.obj 中定义 致命错误 LNK1169:找到一个或多个多重定义的符号

我会一步一步地解释我做了什么,以便别人更容易指出我的错误。

  1. 已下载 GLUT 和 GLAUX 库。将 glaux.h 和 glut.h 放入 C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl
  2. 将 glut32.lib 和 glaux.lib 放入 C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib
  3. 创建了一个名为 DLLs 的文件夹,我在其中放置了 glu32.dll、glut.dll、glut32.dll 和 opengl32.dll,并将该文件夹添加到我的系统路径中。
  4. 在 VC++ 2010 中创建了一个名为 Project 1 的新项目。VC++ 创建了两个名为 Project1.cpp 和 stdfax.cpp 的源文件。然后我添加了另一个名为第 1 课的 .cpp 源文件,并将 NeHe 的第 1 课代码复制粘贴到其中。

现在,当我尝试构建项目时,它给了我上述错误。这可能是因为 NeHe 教程是为 VC++ 6.0 编写的吗?我注意到有两个 glut dll 文件(glut32.dll 和 glut.dll)。这可能是问题吗?我应该删除它们吗?此外,没有 glaux.dll 文件。我是否必须寻找它才能解决我的问题? 如果有人可以帮助我解决我的问题,我将不胜感激。非常感谢所有回答我上一个问题的人

【问题讨论】:

标签: c++ opengl graphics


【解决方案1】:

首先,你不应该通过 Nehe 的教程来学习 OpenGL。虽然我很欣赏他过去为 OpenGL 社区所做的一切,但他的教程已经过时和过时了。 考虑用它来学习:

http://arcsynthesis.org/gltut/

对于您的问题: 您只是在另一个编译单元中已经定义了一个函数,例如错误消息状态。

你能把整个代码上传到pastebin吗? 会让帮助变得更容易。

但请确保您的项目中只有 1 个 WinMain。 VC2010 很可能在模板代码中为您创建了该函数。

【讨论】:

  • 非常感谢您的建议。我想通过尝试直接跳入 OpenGL,我已经咬得比我能咀嚼的还多。我是一个编程菜鸟。我编写的唯一计算机程序是用于求解偏微分方程的 MATLAB 程序,这几乎不能算作编程。我认为我最好先掌握 Visual C++ 的基础知识。非常感谢!
【解决方案2】:

创建项目时,使用名为“Empty project”的选项。

或者你可以删除向导创建的文件,然后打编译器预编译的头文件设置。

【讨论】:

  • 非常感谢您的建议。我想通过尝试直接跳入 OpenGL,我已经咬得比我能咀嚼的还多。我是一个编程菜鸟。我编写的唯一计算机程序是用于求解偏微分方程的 MATLAB 程序,这几乎不能算作编程。我认为我最好先掌握 Visual C++ 的基础知识。非常感谢!
猜你喜欢
  • 2011-06-30
  • 1970-01-01
  • 2012-04-08
  • 2015-12-10
  • 2012-09-03
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 1970-01-01
相关资源
最近更新 更多