最近我开始学习 OpenGL 并且;反过来,开始阅读使用 OpenGL 4.3 的 OpenGL SuperBible 第 6 版。
我的问题出在 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) ;
}
最佳答案
您要查找的 sb6.h 文件位于: https://github.com/openglsuperbible/sb6code/blob/master/include/sb6.h 您还可以浏览该项目并查看源代码的其余部分/检索您需要的任何其他文件。当您将它们复制到本地驱动器/目录时,请确保将包含 header 的新目录的路径添加到您的包含路径,并将任何库添加到 lib 路径等,否则您仍然会遇到相同的错误。
好吧,除非你直接将它们添加到项目目录(不推荐,因为你最终会在所有 gl 项目中大量重复内容,最好将它们放在一个位置并添加路径)让我知道是否您需要帮助定义路径。
附加:
要包含 header 、库等,只需执行以下操作:
下载所有 sb6 项目,然后保存在某个地方(例如 c:\sb6\
)
然后,转到 Property Pages -> VC++ Directories -> Include Directories
并在此处添加 c:\sb6\include\
路径
那么您将要通过以下方式添加库:
Property Pages -> VC++ Directories -> Library Directories
到这里:
最后通过以下方式添加源代码目录:
属性页 -> VC++ 目录 -> 源目录
这里:
修复错误 LNK2019:未解析的外部符号 _main 在函数 ___tmainCRTStartup 中引用
这通常是链接器问题,通常是由于选择了错误的项目类型(即选择 Windows 程序项目而不是 Windows 控制台项目)。可以通过执行以下操作来修复它:
转到 Project -> Properties -> Configuration Properties -> Linker -> System
并在 Subsystem
的条目上将其更改为 Console
此处显示:
让我知道您的进展情况,如果需要我可以扩展。
关于c++ - OpenGL SuperBible 第 6 版,缺少头文件 sb6.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789874/