【问题标题】:VS2013 running on win7 glx.h errorVS2013在win7 glx.h上运行报错
【发布时间】:2014-11-19 06:16:05
【问题描述】:

我正在尝试学习如何在 OpenGL 中编写着色器代码。我安装了所有必要的组件,例如 GLUT,并将 GLee.h 添加到我的项目中。但是,我在 Visual Studio 2013 中收到一个错误,指出无法找到文件 glx.h。这是 GLee.h 代码中发生这种情况的地方:

#ifdef WIN32
    #define WIN32_LEAN_AND_MEAN
    #include <windows.h>
    #include <GL/gl.h>
#elif defined(__APPLE__) || defined(__APPLE_CC__)
    #define GL_GLEXT_LEGACY
    #include <OpenGL/gl.h>
#else // GLX
    #define __glext_h_  /* prevent glext.h from being included  */
    #define __glxext_h_ /* prevent glxext.h from being included */
    #define GLX_GLXEXT_PROTOTYPES
    #include <GL/gl.h>
    #include <GL/glx.h>
#endif

我不明白为什么最后一行显示为需要首先包含的内容,因为我正在运行 win7。尽管我的操作系统是 64 位,但 Visual Studio 2013 版本是 32 位,所以 VS2013 应该识别 #ifdef WIN32 并运行该代码是有道理的,但事实并非如此。我尝试下载要求的文件,但随后 VS2013 要求更多,在几个文件之后我放弃了该策略。我尝试用谷歌搜索这个答案,但找不到任何东西来解决这个奇怪的问题,因为我认为如果这是 VS2013 的问题,这将是一种常见的情况。任何想法如何解决这个问题?

【问题讨论】:

    标签: c++ opengl visual-studio-2013 shader


    【解决方案1】:

    第一行写错了。

    只需像这样在 WIN32 中添加下划线:

    #ifdef _WIN32 
    

    编辑:顺便说一句,我建议使用 GLEW 而不是 Glee。这些天,GLee 似乎没有积极更新,并且(根据他们的 SourceForge 页面),仅支持 OpenGL 3.0。而 GLFW 会定期更新,并支持 OpenGL 4.5 之前的所有内容。

    【讨论】:

      【解决方案2】:

      显然 Visual Studio 定义了_WIN32,但没有定义WIN32。 MinGW 定义了WIN32_WIN32。如果一切都失败了,您可以定义WIN32。请参阅this question 了解更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-07
        • 1970-01-01
        • 2012-11-28
        • 2013-02-15
        • 1970-01-01
        • 2014-09-28
        • 2013-01-15
        相关资源
        最近更新 更多