c# – 初学者ILNumerics:在VS2012下安装
我对ILNUmerics非常感兴趣,想尝试免费版,但我遇到了麻烦.
我已经开始使用控制台应用程序,并试图运行’hello ilnumerics’console应用程序,但我注意到VS无法找到MKL库. 我在Windwos 8下使用VS2012(在2010年中期的MacBook Pro上通过Bootcamp;它是否相关);我已从Project解决方案中安装了NuGet Packages扩展.然后右键单击解决方案资源管理器中的引用,“管理Nu获取包”,在线/搜索各种版本的ilnumerics.我选择’ILNumerics’并安装.我将’ILNumerics’和’ILNumerics.Native’添加到我的项目中.然后我可以在解决方案资源管理器中的“引用”下看到ILNumerics并获得两个新文件夹/ bin32 /和/ bin64 /它们都包含两个名为libiomp5md.dll和mkl_custom.dll的DLL.我检查了他们的 显然找不到mkl_custom.我从快速入门指南中编写了以下代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ILNumerics; namespace ConsoleApplication3 { class Program : ILMath { static void Main(string[] args) { ILArray<double> A = array<double> (new double[] { 1,1,2,3,4,6,10,20},4); ILArray<double> B = counter(4,2); ILArray<double> Result = linsolve(A,B); Console.Out.WriteLine("A: " + Environment.NewLine + A.ToString()); Console.Out.WriteLine("B: " + Environment.NewLine + B.ToString()); Console.ReadKey(); } } } 我得到这个例外: 附加信息:无法加载DLL’mkl_custom’:找不到指定的模块. (来自HRESULT的异常:0x8007007E) 如果我不调用linsolve,ILArray的ToString方法确实有效:如果我发表评论// ILArray Result = linsolve(A,B); 我在屏幕上打印了两个矩阵. 我也尝试计算矩阵的行列式并得到相同的异常:显然我任何时候调用mkl_custom VS都无法找到它. 有任何帮助/提示吗? 另外,是否有必要在添加到解决方案的任何项目中通过NuGet安装ILNumerics?是否可以在本地安装一次,然后在必要时添加引用? 解决方法
两种选择:
1)确保所有二进制文件都可以按预期访问:ILNumerics使用AnyCPU目标并通过在启动时将“bin32”/“bin64”目录添加到PATH envoronment变量来选择平台dependend子文件夹.您的机器可能会出现故障?您可以通过手动将正确的二进制文件(取决于您的平台)直接放入输出路径来确保. 2)如果错误仍然存??在:mkl_custom.dll依赖于其他一些dll本身.一个(libiomp5md.dll)随ILNumerics nuget包一起提供.其他人应该存在于您的系统上:KERNEL32.DLL和MSVCR110.DLL.确保你有这些!如果内核dll丢失 – >称之为奇迹并重新安装您的系统.如果缺少msvcr110 – >转到here并安装“Visual C 2012的Visual C可再发行组件”. 如果问题仍然存在,您可以在ILNumerics bugtracker上提交一个错误,因为运行时应该在那里,正如您所写,您使用的是VS2012.可能这是一个版本问题. 编辑:从版本4.0开始,ILNumerics不再在bin32 / bin64 /子文件夹中部署本机二进制文件,而是将系统范??围内的所有本机依赖项安装到GAC和System32 / WOW文件夹中.旧方案仍然有效(为了与旧项目兼容).但是,没有必要明确地处理ILNumerics的任何依赖性.它们应该只是在运行时找到. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |