Visual c++ 有熟悉拉帕克和布拉斯的人吗? 我是初学者,几周前我对C++一无所知。现在我发现自己在安装LAPACK时遇到了麻烦

Visual c++ 有熟悉拉帕克和布拉斯的人吗? 我是初学者,几周前我对C++一无所知。现在我发现自己在安装LAPACK时遇到了麻烦,visual-c++,lapack,blas,Visual C++,Lapack,Blas,首先,我想用VC++2010做一些矩阵计算,所以(按照别人的建议)我安装了犰狳。我发现犰狳用拉帕克和布拉斯做一些矩阵求逆的工作,这就是让我陷入困境的原因 我有几个关于拉帕克的问题。我已经看过说明书了。我下载了各种.dll和.lib文件,并多次更改它们的位置,以尝试在VC++2010中成功编译。我更改了“Propertie/linker/general”上的“传统库目录”,并在“Propertie/linker/input”的“其他依赖项”中添加了liblapack.lib 我无法理解以下内容:

首先,我想用VC++2010做一些矩阵计算,所以(按照别人的建议)我安装了犰狳。我发现犰狳用拉帕克和布拉斯做一些矩阵求逆的工作,这就是让我陷入困境的原因

我有几个关于拉帕克的问题。我已经看过说明书了。我下载了各种.dll和.lib文件,并多次更改它们的位置,以尝试在VC++2010中成功编译。我更改了“Propertie/linker/general”上的“传统库目录”,并在“Propertie/linker/input”的“其他依赖项”中添加了liblapack.lib

我无法理解以下内容:

  • 许多网站说LAPACK应该安装在某个地方,但我所能做的就是下载一个名为
    LAPACK
    LAPACK-3.4.1
    的文件(文件夹)。我在文件夹中找不到任何install.exe。那么,下载意味着什么

  • 在上面的网站上,应该下载.dll和.lib文件。我应该把它们放在哪里?假设我的VC++2010安装在
    P:\Program Files\Microsoft Visual Studio 10.0
    ;我应该把它们放在这个目录里吗?我应该将下载的LAPACK软件包放在哪里或安装在哪里

  • 参考BLAS是什么意思?如果我不使用cmake和mingw来构建和编译,我仍然可以遵循该网站上提供的下载步骤吗


  • 这有点长。我搜索了每个论坛,尝试了所有可能的方法,但我仍然感到困惑。如果有人能帮我回答至少一部分问题,我将不胜感激。谢谢

    哇,慢点,对于初学者来说,你太深奥了。所以你听了某人的建议“使用犰狳”,然后就走开了,把你留给你自己的设备!难怪你迷路了,孤独了,迷茫了

    犰狳,你需要什么?如果你想在Windows上用C++做矩阵计算,你有一些不涉及犰狳的选项。这些选择包括

    • 这可能要花你的钱
    • --其中包括以uBLAS的名义实施(部分)BLAS
    • 再说一次,这可能要花钱
    安装“英特尔MKL”非常简单,安装Boost并不难(尽管我已经很久没有尝试过了,过去看起来总是美好的)。除了它们的存在,我对艾根或MTL一无所知

    因此,首先,决定您真正需要安装什么。如果您需要BLAS的实现,请安装它。然后是拉帕克。然后是犰狳。但是,您的问题给人的印象是,您试图一次完成太多的事情,而不了解在Windows上安装库并链接到它们的基本知识


    哦,下次你发帖时,使用一些基本的布局和排版使你的问题易于阅读,在你给我们的密密麻麻的文本中,我可能错过了你的一半要点。

    你可以找到你所有问题的答案,你只需阅读犰狳文件中的le file README.txt,在你的网站里,你可以找到显示你需要下载LAPACK和BLAS的地址以及如何安装它们的网站

    谢谢你的回复。我想用C++做一些矩阵运算,所以我在网上搜索,发现有人比较几个可以做我工作的软件包。所以我决定用犰狳。然后我提到的一切都发生在我身上。无论如何,我会试试你推荐的软件。安装Blas和Lapack快把我累死了。也许你是对的,我仍然对库的功能感到困惑。谢谢!实际上,我们可以使用MKL,因为MKL本质上是LAPACK的一种高速变体。直接调用MKL或LAPACK函数绝对是一件痛苦的事——这就是为什么Armadillo被创建的原因,因为它提供了一个易于使用的抽象层。哇,我从来没有注意到调用MKL或LAPACK函数是痛苦的。对大多数人来说,LAPACK和MKL太冗长了,需要手动内存管理。对于非常低级的东西来说,这可能没问题,但对于算法设计和实验来说,这太容易出错了。例如,这里是通过LAPACK计算SVD的原型:void dgesvd(char*jobu,char*jobvt,int*m,int*n,double*a,int*lda,double*s,double*u,int*ldu,double*vt,int*ldvt,double*work,int*lwork,int*info)。与Armadillo的用户友好得多的原型相比:svd(mat&U、vec&s、mat&V、mat&X);虽然有点晚,但我必须同意@mtall的观点。我和布拉斯和拉帕克打了太久了。Armadillo使用用户友好的语法,使我能够比以前更快地开发微积分应用程序,同时利用LAPACK和BLAS提供的一些快速子程序。虽然有点太宽,它提出了一些初学者在跳入armadillo等矩阵库时可能遇到的非常基本的问题。它可能对其他不太了解它的初学者有用。