2014-04-12 18 views
8

Tôi đang cố chạy this ví dụ openGL trên máy Mac của mình từ dòng lệnh bằng gcc. Các XCode được cài đặt, gcc đã được sử dụng nhiều thời gian với các chương trình khác (w \ o đồ họa).Cách sử dụng openGL với gcc trên máy Mac?

Tiếp theo để this chủ đề tôi chạy:

g++ 1.cpp -framework OpenGL -lGLU -lglut 

và nhận được:

1.cpp:12:21: fatal error: GL/glut.h: No such file or directory 

tôi thấy glut.h tại /System/Library/Frameworks/GLUT.framework/Headers/ và lưu ý rằng cấu trúc là khác nhau (không GL thư mục). Nhưng thậm chí loại bỏ GL/ và sử dụng -I/System/Library/Frameworks/GLUT.framework/Headers/không giúp đỡ rất nhiều ..

Vì vậy, tôi tự hỏi - làm thế nào để sử dụng OpenGL với gcc trên máy Mac đúng cách?

Trả lời

22

vấn đề đầu tiên của bạn là cơ sở hạ tầng khung của Apple tích cực phá hoại di động của mã bằng cách đặt tiêu đề OpenGL trong một đường không chuẩn. Trên nền tảng Apple, các tiêu đề OpenGL được đặt trong một thư mục có tên OpenGL thay vì chỉ GL.

Vì vậy, để portably bao gồm các tiêu đề bạn phải viết

#ifdef __APPLE__ 
#include <OpenGL/gl.h> 
#else 
#include <GL/gl.h> 
#endif 

vấn đề khác bạn là, thị trường bất động đó không phải là một phần của OpenGL và một, thư viện của bên thứ ba độc lập, điều đó không còn chứa đựng trong khuôn khổ OpenGL. Bạn cần phải sử dụng GLUT Framework. Và tất nhiên người ta cũng sử dụng các đường dẫn không chuẩn bao gồm:

#ifdef __APPLE__ 
#include <GLUT/glut.h> 
#else 
#include <GL/glut.h> 
#endif 

Biên dịch với các tùy chọn -framework OpenGL -framework GLUT.

5

On Mavericks sử dụng bao gồm

#include <GLUT/glut.h> 

công trình nếu bạn biên dịch với các dòng sau

g++ 1.cpp -framework OpenGL -framework GLUT 
Các vấn đề liên quan