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

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

当我尝试编译程序时,我的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) ;
}

最佳答案

您要查找的sb6.h文件位于:
https://github.com/openglsuperbible/sb6code/blob/master/include/sb6.h
您还可以浏览该项目,并查看源代码的其余部分/检索您需要的任何其他文件。当您将它们复制到本地驱动器/目录时,请确保将包含 header 的新目录的路径添加到include路径,并将任何lib添加到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
如图所示:

让我知道您的生活,如果需要,我可以扩大。

09-25 20:42