Superbible第6版未定义平台错误

MrM*_*ain 2 opengl sample codeblocks

我刚开始从代号为:: blocks的superbible(第6版)学习openGL.但是当我尝试运行第一个示例代码时,我从sb6.h文件中获得了一个未定义的平台错误.

示例代码:

#include "sb6.h"

// Derive my_application from sb6::application
class my_application : public sb6::application
{
public:
    // Our rendering function
    void render(double currentTime)
    {
        // Simply clear the window with red
        static const GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f };
        glClearBufferfv(GL_COLOR, 0, red);
    }
};

// Our one and only instance of DECLARE_MAIN
DECLARE_MAIN(my_application);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?

Jak*_*obb 5

这是因为,头文件期望的一个_WIN32,_LINUX__APPLE__被定义.通常这些是由编译器或平台的标头之一定义的.您也可以将它们传递给您的编译器,例如,-D_LINUX或者在包含其标题之前在源文件中定义它,例如:

#ifndef _LINUX
#define _LINUX
#endif
Run Code Online (Sandbox Code Playgroud)

gcc实际定义__linux,但这不是头文件检查的内容.