Domanda

Attualmente sto scrivendo un semplice motore di gioco per un incarico e per rendere il codice molto più bello che ho deciso di utilizzare una libreria matematica vettoriale. Uno dei miei professori mi ha mostrato la biblioteca Sony vettore matematica che viene utilizzato nel motore Fisica proiettile ed è grande per quanto posso vedere. Ho ottenuto che funziona su Linux bene ma sto avendo problemi di porting per funzionare su OS X (Intel, Snow Leopard). Ho incluso i file in modo corretto nel mio progetto, ma la versione C ++ della libreria non sembra per la compilazione. Posso ottenere la versione C della lavorazione libreria ma ha un API abbastanza brutto rispetto alla versione C ++ e tutta la ragione di usare questa libreria è stato quello di neaten il codice, in primo luogo.

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

Questo post del blog che ho incappato sembra suggerire qualcosa succede con il compilatore? E 'abbastanza corto, e non ho potuto prendere un sacco di informazioni da esso.

Quando provo ad usare il C ++ versione ottengo i seguenti errori (vista espansa di ogni errore):

/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

secondo errore:

/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

Infine due errori alla fine del file main.cpp:

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

Googled il mio cuore, ma io non riesco a trovare alcuna risposta o niente a punto me nella giusta direzione, in modo che qualsiasi aiuto sarà molto ricevuto.

Grazie,

È stato utile?

Soluzione

Quale compilatore stai usando su OS X? Ci sono 4 tra cui scegliere in Xcode 3.2 standard di installazione e il valore predefinito è gcc 4.2. Si potrebbe essere meglio cercando gcc 4.0.

Altri suggerimenti

__forceinline è una parola riservata che è supportato da solo un paio di compilatori. Chiaramente, il compilatore non supporta la parola chiave __forceinline e il codice in questione è non portabile.

A molto povera soluzione potrebbe essere quella di passare una nuova definiscono al compilatore che dà la parola il significato corretto. es :. -D__forceinline=inline o -D__forceinline=__attribute__((always_inline)) (! Grazie Paul)

La versione SSE è stato assunto per essere solo per Microsoft Visual Studio. Per le altre piattaforme (Mac, ecc) è possibile utilizzare la versione scalare.

proiettile \ Extras \ vectormathlibrary \ include \ vectormath \ scalare \ cpp

Sembra che qualcuno risolto questo e pubblicato una versione modificata in risposta a questo problema.

Ora GCC compatibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top