使用 mex 编译库时出错 - __int 64 未命名类型

Error while compiling a library with mex - __int 64 does not name a type

我正在尝试在 Matlab 中使用 mex 编译一个库。我能够部分编译这个东西,但是在最后一个文件中,mex 给出了关于两行的错误:

typedef __int64 LONG64; 
typedef __int64 long64;

错误说:

__int64 does not name a type typedef __int64 LONG64;

这只是 C++ 代码的问题吗?我一点也不熟悉这种语言,也不知道错误从何而来。可以修复吗?

__int64 是仅适用于 Microsoft Visual C++ 32 位和 64 位编译器的同义词。

您可以使用 long long 而不是 __int64

typedef long long LONG64; 
typedef long long long64;

或使用cstdint:

#include <cstdint>

typedef int64_t LONG64; 
typedef int64_t long64;