Pregunta

Actualmente estoy escribiendo un motor de juego muy simple para una tarea y para hacer el código mucho más bonito que he decidido utilizar una biblioteca de vectores de matemáticas. Uno de mis profesores me mostró la biblioteca de Sony vector de Matemáticas que se utiliza en el motor Bullet Physics y es genial por lo que yo puedo ver. Tengo que trabajar muy bien en Linux pero estoy teniendo problemas portarlo a trabajar en OS X (Intel, Snow Leopard). He incluido los archivos correctamente en mi proyecto, pero la versión de C ++ de la biblioteca no parece compilar. Puedo obtener la versión C de la biblioteca de trabajo pero tiene un API bastante desagradable en comparación con la versión de C ++ y la razón de la utilización de esta biblioteca fue a sobrehilarlos el código en el primer lugar.

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

Esta entrada de blog que he topé parece sugerir algo pasa con el compilador? Es bastante corto para que no pudiera tomar una gran cantidad de información de ella.

Cuando intento utilizar el C ++ versión consigo los siguientes errores (vista expandida de cada error):

/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

segundo error:

/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

Finalmente dos errores al final del archivo main.cpp:

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

Googled mi corazón, pero me parece que no puede encontrar ninguna respuesta o algo para que me señale en la dirección correcta por lo que se recibirá ninguna ayuda en gran medida.

Gracias,

¿Fue útil?

Solución

¿Qué compilador está usando en OS X? Hay 4 a elegir en la norma Xcode 3.2 instalar y el valor por defecto es gcc 4.2. Usted puede ser mejor tratar gcc 4.0.

Otros consejos

__forceinline es una palabra reservada que se apoya en sólo un par de compiladores. Claramente, el compilador no admite la palabra clave __forceinline y el código en cuestión es no portátil.

muy pobres solución sería la de aprobar una nueva definen a su compilador que da la palabra clave el significado correcto. por ejemplo . -D__forceinline=inline o -D__forceinline=__attribute__((always_inline)) (! Gracias Paul)

La versión SSE se supone que es sólo para Microsoft Visual Studio. Para otras plataformas (Mac, etc.), puede utilizar la versión escalar.

bala \ Extras \ vectormathlibrary \ include \ vectormath \ escalar \ cpp

Parece que alguien de esta fijo y publicado una versión parcheada en respuesta a esta misma cuestión.

Ahora GCC compatible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top