Question

Je suis en train d'écrire un moteur de jeu très simple pour une mission et de rendre le code beaucoup plus agréable que j'ai décidé d'utiliser une bibliothèque de mathématiques de vecteur. Un de mes professeurs m'a montré la bibliothèque Math Vector Sony qui est utilisé dans le moteur physique Bullet et il est super aussi loin que je peux voir. Je l'ai bien travailler sur Linux, mais je vais avoir des problèmes de portage à travailler sur OS X (Intel, Snow Leopard). J'ai inclus correctement les fichiers dans mon projet, mais la version C de la bibliothèque ne semble pas compiler. Je peux obtenir la version C de la bibliothèque de travail, mais il a une API assez désagréable par rapport à la version C ++ et la seule raison pour laquelle l'utilisation de cette bibliothèque était de neaten le code en premier lieu.

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

Ce billet de blog que je suis tombé sur quelque chose semble suggérer est avec le compilateur? Il est assez court donc je ne pouvais pas prendre beaucoup de ses informations.

Lorsque je tente d'utiliser la version C ++ je reçois les erreurs suivantes (vue agrandie de chaque erreur):

/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

seconde erreur:

/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

Enfin, deux erreurs à la fin du fichier main.cpp:

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

J'ai googlé mon coeur, mais je ne peux pas sembler trouver des réponses ou quoi que ce soit à me diriger dans la bonne direction de sorte que toute aide sera grandement reçu.

Merci,

Était-ce utile?

La solution

Quel compilateur utilisez-vous sur OS X? Il y a 4 à choisir dans la norme Xcode 3.2 installer et la valeur par défaut est gcc 4.2. Vous pourriez être mieux essayer gcc 4.0.

Autres conseils

__forceinline est un mot réservé qui est pris en charge par seulement compilateurs couple. De toute évidence, votre compilateur ne supporte pas le mot-clé __forceinline et le code en question est non-portable.

très pauvres solution serait d'adopter une nouvelle définir à votre compilateur qui donne le mot-clé le sens correct. . par exemple : -D__forceinline=inline ou -D__forceinline=__attribute__((always_inline)) (Merci Paul)

La version SSE est supposé être uniquement pour Microsoft Visual Studio. Pour d'autres plates-formes (Mac, etc.), vous pouvez utiliser la version scalaire.

Bullet \ Extras \ vectormathlibrary \ include \ vectormath \ scalaire \ cpp

On dirait que quelqu'un est fixe et cette posté une version patchée en réponse à cette question.

GCC conforme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top