[OpenGL]解決MacOs上報錯「‘glTranslatef’ is deprecated: first deprecated in macOS 10.14」

10.9以上的MacOS系統OpenGL有了新的API來替代以前的GLUT庫,以前的GLUT庫裏不少函數被標記爲了deprecated,即將廢棄的,可是考慮兼容性,當前系統版本仍是支持的。macos

下面介紹如何消除這些警告提示。bash

報錯以下:app

'glTranslatef' is deprecated: first deprecated in macOS 10.14 - OpenGL API deprecated. (Define GL_SILENCE_DEPRECATION to silence these warnings)

根據報錯咱們定義GL_SILENCE_DEPRECATIONide

#define GL_SILENCE_DEPRECATION

可是警告並無消失,緣由是咱們必須吧該語句放在includeOpenGL文件以前:函數

#ifdef __APPLE__
/* Defined before OpenGL and GLUT includes to avoid deprecation messages */
#define GL_SILENCE_DEPRECATION
#include <OpenGL/gl.h>
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glut.h>
#endif

另一個方法是在編譯階段傳遞-Wno-deprecated-declarations選項給編譯器。spa

此外還有一個警告是沒法刪除的:.net

OpenGl is deprecated.Consider migrating to Metal instead

這個就是提示如今GLUT已經棄用,能夠轉向使用Metal,相關轉換教程可參考https://www.raywenderlich.com/9211-moving-from-opengl-to-metalcode


參考:
https://stackoverflow.com/questions/53562228/silencing-opengl-warnings-on-macos-mojave
blog

https://blog.csdn.net/oktears/article/details/42214519?utm_source=app教程

相關文章
相關標籤/搜索