Dre*_*rew 11 c++ opengl header
我想在我的opengl程序(C++)中同时拥有OS X和linux的包含,如果另一个不可用,如何设置我的程序使用一个?这是我目前正在做的事情:
if(!FileExists(OpenGL/gl.h))
#include <GL/glut.h> //linux lib
else {
#include <OpenGL/gl.h> //OS x libs
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
}
Run Code Online (Sandbox Code Playgroud)
Gre*_*hen 30
这是我使用的:
#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
#else
#ifdef _WIN32
#include <windows.h>
#endif
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#endif
Run Code Online (Sandbox Code Playgroud)
Mac的所有编译器(好吧,我猜这是gcc,也许是clang)应该定义__APPLE__.我抛弃它 _WIN32,因为windows.h平台上的gl.h必须包含在windows.h中.
如果您有许多需要OpenGL的文件,可以将它放在自己的包含文件(例如gl_includes.h)中
-matt
Ski*_*izz 12
或者,将特定于平台的标头放入自己的文件中:
Linux的\ platform.h
#include <GL/gl.h>
#include <GL/glu.h>
Run Code Online (Sandbox Code Playgroud)
OSX\platform.h
#include <OpenGL/gl.h> //OS x libs
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
Run Code Online (Sandbox Code Playgroud)
的win32\platform.h
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
Run Code Online (Sandbox Code Playgroud)
并包含在代码中:
#include "platform.h"
Run Code Online (Sandbox Code Playgroud)
然后让您的构建系统根据目标平台指定正确的搜索路径.
#ifdef __APPLE__
#include <OpenGL/gl.h> //OS x libs
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20374 次 |
| 最近记录: |