Frage

Ich bin derzeit eine sehr einfache Spiel-Engine für eine Zuordnung zu schreiben und den Code viel zu machen schöner Ich habe beschlossen, eine Vektor-Mathematik-Bibliothek zu verwenden. Einer meiner Dozenten zeigte mir die Sony Vector Math-Bibliothek, die in dem Bullet Physics-Engine verwendet wird, und es ist toll, so weit ich sehen kann. Ich habe es auf Linux arbeitet gut, aber ich habe Probleme es Portierung auf OS X zu arbeiten (intel, Snow Leopard). Ich habe die Dateien richtig in meinem Projekt enthalten, aber die C ++ Version der Bibliothek scheint nicht zu kompilieren. Ich kann die C-Version der Bibliothek Arbeits bekommen, aber es hat eine ziemlich fiese API im Vergleich zur C ++ Version und der ganzen Grunde, diese Bibliothek zu verwenden war, den Code in erster Linie vernähen.

http://glosx.blogspot.com/2008 /07/sony-vector-math-library.html

Dieser Blog-Eintrag, dass ich gestolpert auf scheint mit dem Compiler etwas liegt vorschlagen? Es ist ziemlich kurz, damit ich nicht viele Informationen von ihm nehmen könnte.

Wenn ich versuche, die C ++ Version verwenden wir die folgenden Fehler erhalten (erweiterte Ansicht eines jeden Fehlers):

/usr/include/vectormath/cpp/../SSE/cpp/vectormath_aos.h:156:0
/usr/include/vectormath/cpp/../SSE/cpp/vectormath_aos.h:156: 
error: '__forceinline' does not name a type

zweiter Fehler:

/Developer/apps/gl test/main.cpp:7:0 In file included from /Developer/apps/gl test/main.cpp

/usr/include/vectormath/cpp/vectormath_aos.h:38:0 In file included from   
/usr/include/vectormath/cpp/vectormath_aos.h

/usr/include/vectormath/cpp/../SSE/cpp/vectormath_aos.h:330:0 In file included from
/usr/include/vectormath/cpp/../SSE/cpp/vectormath_aos.h

/usr/include/vectormath/cpp/../SSE/cpp/vecidx_aos.h:45:0 Expected constructor, destructor, 
or type conversion before '(' token in     /usr/include/vectormath/cpp/../SSE/cpp/vecidx_aos.h

Schließlich zwei Fehler am Ende der main.cpp-Datei:

Expected '}' at the end of input
Expected '}' at the end of input

Ich habe mein Herz gegoogelt, aber ich kann keine Antworten zu finden scheinen, oder irgendetwas mich in die richtige Richtung weisen, so wird jede Hilfe sehr empfangen werden.

Danke,

War es hilfreich?

Lösung

Welche Compiler sind Sie auf OS X? Es gibt 4 von im Standard Xcode 3.2 zu wählen, installieren und der Standard ist gcc 4.2. Sie könnten besser dran 4.0 gcc versuchen.

Andere Tipps

__forceinline ist ein reserviertes Wort, das nur ein paar Compiler unterstützt wird. Offensichtlich hat Ihr Compiler das __forceinline Schlüsselwort und den Code in Frage unterstützt, ist nicht tragbar.

A sehr schlecht Abhilfe ein neue zu Ihrem Compiler definiert passieren würde, die das Schlüsselwort die richtige Bedeutung gibt. Z. B . -D__forceinline=inline oder -D__forceinline=__attribute__((always_inline)) (! Danke Paul)

Das wurde SSE-Version davon ausgegangen, nur für Microsoft Visual Studio sein. Für andere Plattformen (Mac, etc.) können Sie die skalare Version.

Bullet \ Extras \ vectormathlibrary \ include \ vectormath \ Skalar \ cpp

Es sieht aus wie jemand diese oben festgelegt und veröffentlicht eine gepatchte Version in Reaktion auf ebendieser Frage.

Jetzt GCC-konform.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top