2016-10-02 11 views
0

Ich habe seit 6 Stunden versucht ... die SDL2_gfx-Bibliothek in meinem Projekt unter Xcode 8.0 zu verwenden.SDL2_gfx installieren und verwenden - Mac OS X

Ich sage dir jetzt, ich bin ein kompletter Neuling zu all dem, Terminal-Befehle, einschließlich Bibliotheken und so.

Ich habe es geschafft, SDL2 zu verwenden, denn es gibt ein .framework, aber das SDL2_gfx kommt nur als ein Ordner mit einem .a, .dylib, .h und einem mysteriösen .json.

Ich habe installiert es durch Homebrew ohne Probleme, aber jetzt, Wie mache ich ein Projekt mit ??

in den Build-Phasen und Einstellungen Körperbau: Ich habe versucht, die Verknüpfung .a und .dylib über „Link-Binary mit Bibliotheken“, habe ich die Header Pfade in „Header-Suchpfaden“ in „Suchpfaden hinzugefügt ", Ich habe versucht, die .h zu meinem Projekt direkt hinzufügen, und ich habe absolut keine Ahnung von dem, was in" Andere Linker Flags "wie es in vielen Antworten vorgeschlagen.

Ich bekomme immer den sehr einfachen Fehler "keine passende Funktion für Anruf ...", wenn ich versuche, eine Funktion zu verwenden. Aber ich es auf die gleiche Weise wie in einigen Beispielen im Internet mache, und ich checkte in der .h, nicht die Funktionen existieren ...

Bitte helfen T_T

EDIT: Ich habe Managed-Funktionen zu finden, die offenbar erkannt werden:

Sint16 circleR = 100; 
Sint16 circleX = 300; 
Sint16 circleY = 300; 

int result = filledCircleColor(gRenderer, circleX, circleY, circleR, 0xFF0000FF); 
     std::cout << "draw circle result " << result << std::endl; 

int a = pixelRGBA(gRenderer, circleR, circleR, 0xFF, 0x00, 0x00, 0xFF); 
     std::cout << "draw pixel result " << a << std::end; 

Aber kommt mit Ergebnis -1, was bedeutet, dass es nicht funktioniert hat. Kann immer noch nicht herausfinden ... Ich nehme an, ich verwende sie nicht richtig, aber Ich kann kein anderes Beispiel im Internet finden.

+0

Haben Sie den -lSDL_gfx Linker-Flag (zusammen mit dem übrigen SDL Flags)? – Hydren

Antwort

0

ich glaube ich sehe dein problem: du rufst mit als 1. parameter einen RENDERER an. Der Funktionskopf erwartet eine OBERFLäCHE:

http://www.ferzkopp.net/Software/SDL_gfx-2.0/Docs/html/_s_d_l__gfx_primitives_8h.html#a4f7b717b958ef39bfc8c958476dd0de1

definiert klar die Funktion als:

SDL_GFXPRIMITIVES_SCOPE int filledCircleColor ( SDL_Surface * dst, 
Sint16 x, 
Sint16 y, 
Sint16 rad, 
Uint32 color 
) 
+0

Danke für die Antwort, aber SDL2_gfx hat die Oberfläche in einen Renderer verwandelt: http://www.ferzkopp.net/Software/SDL2_gfx/Docs/html/_s_d_l2__gfx_primitives_8h.html –