2017-10-27 1 views
-2

OSX Version: 10.13 - High SierraWie erstelle ich ein einfaches OpenGL-Fenster auf dem Mac?

Macbook Pro Ende 2011

Xcode: 9

Level: Anfänger

ich an der OpenGL Programming Guide in Apple-doc sah, aber die Dokumentation war nicht so freundlich, also habe ich es noch nicht ausprobiert.

Ich habe google research und youtube darüber, wie man einfach ein Fenster für den Anfang erstellt, habe ich erfolgreich ein Fenster mit Rechteck meiner gewünschten Farbe mit XCode erstellt. Aber es war OpenGL v2 und es gab viele verwarnungen.

Ich möchte außerhalb von XCode Umgebung OpenGL entwickeln, aber ich nicht, es zu kompilieren und hier ist mein main.cpp

#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; 

} 

I vscode + vim als Haupttexteditor

Hier bin mit ist wie i kompilieren die main.cpp im Terminal:

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

ich habe versucht, sie ohne Code in das Haupt- und die Bibliotheken kompilieren in

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) 

Antwort

0

der Linker diese Funktionen überall finden konnte Diese Fehler bedeuten: clude einen Fehler nicht geworfen haben, nachdem dann kopiere ich zurück in den Haupt alle fügen Sie den Code, und kompilieren Sie es, es diesen Fehler geworfen.

Sie müssen kompilieren/verknüpfen mit -framework Cocoa und -framework OpenGL. Da Sie GLUT verwenden, müssen Sie es auch als vorkompiliertes Framework herunterladen und an die Kompilierungs-/Verknüpfungs-Flags -framework GLUT anhängen.

+0

Es löste mein Problem, vielen Dank: D – lambda

Verwandte Themen