2017-10-27 1 views
-2

OSX 버전 : 10.13 - 높은 시에라Mac에서 간단한 OpenGL 창을 만드는 방법은 무엇입니까?

맥북 프로 늦은 2011

엑스 코드 : 9

레벨 : 초급

나는 애플의 문서에서 OpenGL을 프로그래밍 가이드에서하는 듯했지만 문서이었다 그다지 친절하지 않아서 아직 시도하지 않았습니다.

Google 검색 및 YouTube에서 단순히 시작하기위한 창을 만드는 방법에 대해 XCode를 사용하여 원하는 색상의 사각형이있는 창을 성공적으로 만들었습니다. 하지만 OpenGL v2와 많은 비추천 경고가있었습니다.

내가 엑스 코드 환경 외부의 OpenGL을 개발하고자하지만 난 여기를 컴파일하는 데 실패하고 나의 MAIN.CPP 내가

여기에 주요 텍스트 편집기로 vscode + 정력 어떻게되어 사용하고

#include <stdlib.h> 
#include <OpenGL/gl.h> 
#include <GLUT/glut.h> 

void display() { 

    glClearColor (1.f, 0.f, 0.f, 1.f); 

    glClear (GL_COLOR_BUFFER_BIT); 

    glLoadIdentity(); 

    glFlush(); 

} 

int main (int argc, char** argv) { 

    glutInit (&argc, argv); 

    glutInitDisplayMode (GLUT_SINGLE); 

    glutInitWindowSize (640, 480); 

    glutInitWindowPosition (100, 100); 

    glutCreateWindow ("Baby GL"); 

    glutDisplayFunc (display); 

    glutMainLoop(); 

    return 0; 

} 

입니다 내가 터미널에서 MAIN.CPP을 컴파일 :

g++ -pipe --std=c++14 main.cpp -lm

내가 메인 코드없이 컴파일 및 라이브러리에서 시도 clude 그때 이후 나는 다시 주에 모든 코드를 붙여 복사, 오류를 발생하고, 컴파일하지 않았다,이 오류가 발생합니다 :

7 warnings generated. // just deprecation warning 
Undefined symbols for architecture x86_64: 
"_glClear", referenced from: 
    display() in main-26b0d3.o 
"_glClearColor", referenced from: 
    display() in main-26b0d3.o 
"_glFlush", referenced from: 
    display() in main-26b0d3.o 
"_glLoadIdentity", referenced from: 
    display() in main-26b0d3.o 
"_glutCreateWindow", referenced from: 
    _main in main-26b0d3.o 
"_glutDisplayFunc", referenced from: 
    _main in main-26b0d3.o 
"_glutInit", referenced from: 
    _main in main-26b0d3.o 
"_glutInitDisplayMode", referenced from: 
    _main in main-26b0d3.o 
"_glutInitWindowPosition", referenced from: 
    _main in main-26b0d3.o 
"_glutInitWindowSize", referenced from: 
    _main in main-26b0d3.o 
"_glutMainLoop", referenced from: 
    _main in main-26b0d3.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

답변

0

이러한 오류는 링커가 어디 그 기능을 찾을 수 없습니다 의미한다.

-framework Cocoa-framework OpenGL을 사용하여 컴파일/링크해야합니다. GLUT을 사용할 때, 미리 컴파일 된 프레임 워크로 다운로드하여 -framework GLUT을 컴파일/링크 플래그에 추가해야합니다.

+0

내 문제를 해결했습니다. 대단히 감사합니다. D – lambda

관련 문제