2017-06-13 4 views
0

Ich versuche, eine Bibliothek mit mex in Matlab zu kompilieren. Ich konnte teilweise die Sache kompilieren, aber auf der letzten Datei mex gibt einen Fehler in Bezug auf die beiden Linien:Fehler beim Kompilieren einer Bibliothek mit mex - __int 64 nennt keinen Typ

typedef __int64 LONG64; 
typedef __int64 long64; 

Der Fehler sagt:

__int64 hat keinen Typ typedef __int64 LONG64;

nennen

Ist das nur eine Frage des C++ - Codes? Ich bin mit dieser Sprache überhaupt nicht vertraut und weiß nicht, woher der Fehler kommt. Kann es repariert werden?

Antwort

2

__int64 ist ein Synonym, das nur für Microsoft Visual C++ 32-Bit- und 64-Bit-Compiler funktioniert.

können Sie long long anstelle von __int64

typedef long long LONG64; 
typedef long long long64; 

Oder cstdint verwenden:

#include <cstdint> 

typedef int64_t LONG64; 
typedef int64_t long64; 
+0

Vielen Dank für die schnelle Antwort. Ich habe das versucht, und der Fehler ändert sich in einen sehr langen ... Anscheinend gibt es einige Funktionen in der Bibliothek, die die neue Typdefinition nicht mögen. –

+0

Oder wechseln Sie zu 'cstdint's' int64_t'. – user4581301

+0

@ user4581301 Danke! Hinzugefügt zum Körper – Rama