初学者ILNumerics:在VS2012安装 [英] Beginner ILNumerics: install under VS2012

查看:3347
本文介绍了初学者ILNumerics:在VS2012安装的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在ILNUmerics很感兴趣,很想试试免费版本,但我有麻烦。

I am very much interested in ILNUmerics and would like to try the free version, but I am having troubles.

我已经开始使用一个控制台应用程序,并试图运行你好ilnumerics'console应用程序,但我注意到,VS无法找到MKL库。

I have started with a console application and was trying to run the 'hello ilnumerics'console application but I noticed that VS fails to find MKL libraries.

我在MacBook Pro上使用中旬通过在训练营的Windwos 8(VS2012 2010;它应该是有关);我已经安装了从项目的解决方案的NuGet包扩展名。在解决方案资源管理器中的引用,然后右键单击管理怒江获取包,在线弗朗/搜索发现,在各种版本ilnumerics。我选择了'ILNumerics并安装。我得到了'ILNumerics'和'ILNumerics.Native添加到我的项目。然后,我可以看到下在Solution Explorer中引用ILNumerics并同时获得两个新文件夹/ bin32中/和/ bin64适用/它们都包含一个名为两个DLL:libiomp5md.dll和mkl_custom.dll。我已经检查了
'复制到输出继电器目录财产是否有更新的复制。

I am using VS2012 under Windwos 8 (through Bootcamp on a MacBook Pro mid 2010; should it be relevant); I have installed the NuGet Packages extension from the Project solution. Then right-click on references in the solution explorer, 'Manage Nu Get Packages', fron online/search found ilnumerics in various versions. I chose 'ILNumerics' and install. I got 'ILNumerics' and 'ILNumerics.Native' added to my project. Then I can see ILNumerics under 'References' in Solution Explorer and also get two new folders /bin32/ and /bin64/ they both contain two DLLs named: libiomp5md.dll and mkl_custom.dll. I have checked their 'Copy to Ouput Directory' property and they are all set to 'Copy if newer'.

显然mkl_custom找不到。我写了下面的代码,请从快速入门指南采取:

Apparently mkl_custom is not found. I write the following code, taken from the quickstart guide:

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,1,1,1,2,3,4,1,3,6,10,1,4,10,20} ,4, 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();
        }
    }
}

和我得到这个异常:
型'System.DllNotFoundException的未处理的异常出现在ILNumerics.dll

and I get this exception: An unhandled exception of type 'System.DllNotFoundException' occurred in ILNumerics.dll

其他信息:无法加载DLLmkl_custom:指定的模块不能被发现。 (异常来自HRESULT:0x8007007E)

Additional information: Unable to load DLL 'mkl_custom': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

如果我不调用linsolve ILArray的ToString方法不工作:如果我评论// ILArray结果= linsolve(A,B) ;

If I do not invoke linsolve the ToString method of ILArray does work: if I comment // ILArray Result = linsolve(A, B);

我得到印在屏幕上的两个矩阵

I get the two matrices printed on the screen.

我也尝试计算的行列式矩阵,得到了相同的异常:显然是任何时候我打电话mkl_custom VS不能够找到它。

I have also tried to compute the determinant of a matrix and got the same exception: apparently any time I call mkl_custom VS is not capable to find it.

任何帮助/提示吗?

此外,有必要通过的NuGet上的任何工程安装ILNumerics添加到该解决方案? ?是否有可能在本地安装一次所有,然后根据需要添加引用

Also, is it necessary to install ILNumerics through NuGet on any project added to the solution? Would it be possible to install it locally once for all and then add the reference if necessary?

推荐答案

有两种选择:

1)确保所有二进制文件入店像预期一样:ILNumerics使用值为anycpu目标,并通过添加bin32中/bin64适用目录到PATH envoronment变量选择的平台dependend子文件夹在启动时。可能有一些失败你的机器上?您可以通过放置正确的二进制文件(根据您的平台)直接进入手动输出路径,确保

1) Make sure, all binaries are accesible as intended: ILNumerics uses AnyCPU targets and chooses the platform dependend subfolder by adding the "bin32" / "bin64" directories to the PATH envoronment variable on startup. Possibly there is something failing on your machine? You can make sure by placing the correct binaries (depending on your platform) directly into the output path manually.

2)如果错误仍然存​​在:mkl_custom.dll取决于一些其他DLL本身。酮(libiomp5md.dll)与ILNumerics的NuGet包递送。其他预计将您的系统上存在:KERNEL32.DLL和MSVCR110.DLL。请确保你拥有这些!如果内核DLL不见了 - >称之为奇迹,并重新安装系统。如果msvcr110缺失 - >去这里并安装。在的Visual C ++可再发行的Visual Studio 2012

2) In case the error persists: mkl_custom.dll depends on some other dlls itself. One (libiomp5md.dll) is delivered with the ILNumerics nuget package. Others are expected to exist on your system: KERNEL32.DLL and MSVCR110.DLL. Make sure, you have these! If the kernel dll was missing -> call it a miracle and reinstall your system. If the msvcr110 is missing -> go here and install the "Visual C++ Redistributable for Visual Studio 2012".

在情况下,问题仍然存在,则可以提交对ILNumerics的错误追踪系统,因为在运行时应该有,因为你写你正在使用VS2012。 。也许这是一个版本控制问题,但

In case the problem persists, you may file a bug on the ILNumerics bugtracker, because, the runtime should be there, as you wrote you are using VS2012. Possibly it is a versioning problem though.

编辑:由于4.0版ILNumerics不bin32中/ bin64适用/子再部署本机二进制代码,但是安装所有本地依赖系统范围进GAC和System32下/ WOW文件夹。旧的计划仍然会工作(与旧项目兼容)虽然。但它没有必要再处理为ILNumerics明确任何依赖关系。他们应该只是在运行时被发现。

Since version 4.0 ILNumerics does not deploy the native binaries in bin32/ bin64/ subfolder anymore but installs all native dependencies systemwide into the GAC and System32/WOW folders. The old scheme will still work (for compatibility with old projects) though. But it is not necessary anymore to deal with any dependancies for ILNumerics explicitly. They should simply be found at runtime.

这篇关于初学者ILNumerics:在VS2012安装的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆