我正在尝试在多平台环境中使用Intel MKL库。我的DllImports和包装器类在.NET / Windows下工作。但是,当我将其移植到CentOS时,会收到“无效的IL代码”。
我已将DLLImports更改为包括Linux版本的MKL(.so库)。我添加了LD_LIBRARY_PATH环境变量。尽管如此,该错误不会更改是否存在库。而且我没有得到DLLNotFound错误,我得到了无效的IL错误。
下面,我粘贴我的Windows,运行dllimport语句。
[DllImport("mkl_rt.dll", ExactSpelling = true, SetLastError = false, CallingConvention = CallingConvention.Cdecl)]
internal static extern int DftiCreateDescriptor(
ref IntPtr handle_descriptor,
int precision,
int domain,
int dime,
int size
);
现在这是我为linux设计的
[DllImport("libmkl_rt.so", CallingConvention = CallingConvention.Cdecl)]
private static extern int DftiCreateDescriptor(
ref IntPtr handle_descriptor,
int precision,
int domain,
int dime,
int size
);
答案 0 :(得分:0)
最终,通过不使用__arg_list并使用Mono“ .config”文件解决了该问题