终于解决编译器的问题了,果然32位下mathematica10对MinGW有兼容性问题
\SystemFiles\IncludeFiles\C\WolframLibrary.h
用mathematica8的头文件替换后可正常编译,经过对比后发现出问题的位置在第31行
mathematica10 WolframLibrary.h:31
#ifdef MINT_32
#ifdef _WIN32
typedef __w64 int mint;
#else
typedef int mint;
#endif
#else
#ifdef _WIN64
typedef long long mint;
#else
typedef long mint;
#endif
#endif
应该是关于移植性的宏定义,MinGW最后使用了 typedef __w64 int mint; 就出问题了
mathematica8 WolframLibrary.h:29
#ifdef SCALE_MINT
#ifdef _WIN64
typedef __w64 long long mint;
#endif
#else
typedef int mint;
#endif
解决方案:保留 typedef int mint; 或 typedef long mint; 行,其它行注释掉就可以了。
因为看不太懂,还不知道会有什么后遗症