【问题标题】:OpenGL SuperBible 6th edition, header file sb6.h missingOpenGL SuperBible 第 6 版,缺少头文件 sb6.h
【发布时间】:2013-11-05 13:14:52
【问题描述】:

最近我开始学习 OpenGL 并且;反过来,开始阅读OpenGL SuperBible 6th edition,它使用了OpenGL 4.3。

我的问题出在 sb6.h 头文件中,因为在书中写到这是一个 c++ 头文件,它定义了一个名为 sb6 的命名空间,其中包含应用程序类的声明。

当我尝试编译我的程序时,我的 C++ IDE(Visual Studio 2010) 抛出一个错误,指出找不到这样的头文件。

所以也许你们当中有人听说过这个问题,或者也开始阅读这本书并且知道如何解决这个问题;如果是,请回复。

#include "sb6.h"

//derive my_application from sb6:application

class my_application : public sb6.application
{
public : 

   //Rendering function
   void render(double currentTime){

   //Simply clear the window red
   static const GLfloat red[] = {1.0f , 0.0f , 0.0f , 1.0f};

  glClearBufferfv(GL_COLOR, 0 , red) ; 
}

【问题讨论】:

  • 那么第一个问题就变成了:你有那个文件吗?如果你在 Github 上查看这本书的来源,它就在那里:github.com/openglsuperbible/sb6code
  • @Bart,不,我没有。我会从你的链接下载它
  • 虽然我是从超级圣经开始学习OpenGL(1.2)的,但现在我觉得它作为参考而不是教程更好。也可以看看this book,也许你会发现它更容易学习。
  • 我对 OpenGL 很熟悉,但是这个头文件搞砸了我

标签: c++ opengl opengl-4


【解决方案1】:

您要查找的 sb6.h 文件位于: https://github.com/openglsuperbible/sb6code/blob/master/include/sb6.h 您还可以浏览该项目并查看源的其余部分/检索您需要的任何其他文件。当您将它们复制到本地驱动器/目录时,请确保将包含标头的新目录的路径添加到您的包含路径和任何库到 lib 路径等,否则您仍然会遇到相同的错误。

好吧,除非您将它们直接添加到项目目录中(不推荐,因为您最终会在所有 gl 项目中大量重复内容,最好将它们放在一个位置并添加路径)如果您需要帮助定义路径。

补充:

要包含标头、库等,只需执行以下操作:

下载所有 sb6 项目,然后保存在某个地方(例如 c:\sb6\ ) 然后,去Property Pages -> VC++ Directories -> Include Directories 并在此处添加c:\sb6\include\ 路径 那么您将需要通过以下方式添加库: Property Pages -> VC++ Directories -> Library Directories 到这里: 最后通过以下方式添加您的源代码目录: Property Pages -> VC++ Directories -> Source Directories 这里:

修复错误 LNK2019:函数 ___tmainCRTStartup 中引用的无法解析的外部符号 _main

这通常是链接器问题,最常见的原因是选择了错误的项目类型(即选择了一个 Windows 程序项目而不是 Windows 控制台项目)。可以通过以下方式修复:

转到Project -> Properties -> Configuration Properties -> Linker -> System 并在Subsystem 的条目上将其更改为Console

此处显示:

让我知道你的进展,如果需要,我可以扩展。

【讨论】:

  • 是的,我需要一些帮助来将头文件与项目链接起来
  • 嗨 Nicholas,刚刚编辑了帖子,现在更新了屏幕截图:)
  • 好吧,现在我得到这个错误 error C2504: 'sb6' : base class undefined
  • 上一个未定义 sb6 基类的错误我已修复。现在它告诉我错误 LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup 我知道这是一个问题,我没有我的主要功能,但据我了解 DECLARE_MAIN(my_application) ;
  • DECLARE_MAIN(my_application) ;代表函数 main 。所以我不知道为什么会出现这个错误
猜你喜欢
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
  • 2015-04-12
  • 1970-01-01
相关资源
最近更新 更多