在Mac OS X .framework中包含GLEW的正确方法是什么?

问题描述 投票:1回答:1

可能是一个非常简单的问题,但它让我难过。

我有一个基于SDL / OpenGL / GLEW的静态库,可以在Windows上编译(gcc / g ++)和链接。在OS X上,相同的代码库无法编译声称它无法找到GL_NUM_EXTENSIONS和:: glGetStringi()的声明 - 这是因为我已经在混合中抛出GLEW(只有SDL和OpenGL,它构建得很好) OS X也是)。

// globals.h
#include <glew.h>
#include <SDL/SDL.h>

// graphics.h
#include "globals.h"

bool HasGLExtension(const char* pName);

// graphics.cpp
#include <string>
#include "graphics.cpp"

bool HasGLExtension(const char* pName)
{
  GLint numExtensions;
  ::glGetIntegerv(GL_NUM_EXTENSIONS, &numExtensions); // error
  for (int i = 0; i < numExtensions; ++i)
  {
    if (strcmp(pName, (char*)::glGetStringi(GL_EXTENSIONS, i)) == 0) // error
    {
      return true;
    }
  }
  return false;
}
  • 作为框架构建的依赖库位于/ Library / Frameworks。
  • 使用-DGLEW_STATIC -DSDL_NO_GLEXT编译标志(根据需要在Windows上 - 即使我删除它,问题仍然存在)。
  • 甚至自动完成确认glew.h的位置存在(当然,再次,这不是我得到的错误 - 它是符号)。
  • 包括SDL / SDL_opengl.h只会导致冲突的声明。
  • 有问题的定义存在于glew.h中

我失踪的显而易见的是什么?

c++ macos gcc sdl glew
1个回答
0
投票

不要这样做。对于1,易于设置的东西,2,开箱即用和3,在许可证中几乎没有任何障碍,使用glLoadGen

© www.soinside.com 2019 - 2024. All rights reserved.