我有一台运行支持 OpenGL 4.x 的 Yosemite 的 Mac,但是每当我使用“-lSDL2 -framework OpenGL”标志编译 C++ 项目时,它会自动使用安装在/System/Library/Frameworks 下的 OpenGL 1.20。正确的版本安装在/Applications/XCode.app/... 的长路径中 有没有办法让 gcc 编译器正确选择 OpenGL 4.x 版本而不是旧版本?
编辑: 似乎链接哪个无关紧要,它仍在使用不正确的版本。当行“SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);”时,它似乎确实使用了正确的版本。被添加。但是它仍然说不支持 GLSL 版本 #130。所以这可能不是问题所在。
最佳答案
您可以使用 -isysroot
选项来指定特定的 SDK 位置。例如:
clang -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk ...
这将告诉编译器使用此特定 SDK 版本中的所有 header 、库等。
关于c++ - 在 OSX 上链接 OpenGL 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30862084/