需要材料
1、已经编译好的库文件、dll文件和头文件。http://icl.cs.utk.edu/lapack-for-windows/lapack/#libraries 这个网站中有已经用minGW编译好的LAPACK库(lib),一共有三个,除此之外还有三个对应的dll文件以及四个头文件(header file),如下图所示。这里一定要注意lib和dll文件一定要与你的项目对应,32位的项目下载win32, 64位的项目下载x64的,四个头文件无论哪种项目都要下载
2、与你项目类型对应的MinGW(注:64位项目要使用64位的MinGW, 32位项目使用32位的MinGW)。
32位的MinGw目前资源比较好找,我认为这个资源有个manager,比较好用:https://sourceforge.net/projects/mingw/files/。安装好manager后会弹出manager窗口,对于C++项目只需要按照下图操作即可:
对于minGw_64位的资源目前小编还没有找到有manager的,而且大部分资源不是安装器卡死就是离线包里边不包含gfortran文件,这都是不能用的,这里有一个不用安装的资源:https://www.copsmodels.com/gpgfort.htm,下载表格里第一个资源就行,亲测能用,里面包含了32位+64位,可惜的是没有manager,无法添加新的功能。解压后里有两个文件夹打头为i686的文件夹里是32位的,x86_64的是64位的。
3、VS,这不多说
步骤
假设我们已经有一个建好的项目,需要我们给这个项目添加LAPACK库,
1、为库的相关文件建一个文件以便管理,可参考下图:
2、按照官网上的教程建立连接,不打字了,直接上图
要注意,上述的操作只是针对于你的解决方案中的一个项目操作的,其他项目需要重复上述操作。而且对于不同运行模式需要在该运行模式下重复上述操作,比如你在Debug模式下进行了上述操作,你如果想要在Release模式下运行,还需在Release模式下重新调一下
3、设置环境变量,如下图:
4.将MinGw的相应文件放到系统文件夹中去。
在你的项目中就可以通过包含这四个头文件来使用Lapack的函数了
#include<lapacke.h>
#include<lapacke_config.h>
#include<lapacke_mangling.h>
#include<lapacke_utils.h>
4、如果你的项目能够编译但是运行时提示缺少某某dll文件,那么有可能是两种问题
第一:C->Windows->system32中的确缺少该文件,你需要去minGw的bin文件夹(这个文件夹就是第3步的文件夹)中去检索,把他复制到C->Windows->system32中去即可,如果bin文件中没有检索到就去bin的上一级文件夹mingw64中检索。如果还是没有的话,有可能是你VS的问题
第二:我我们不缺少这个dll文件,只是文件名不对,这种情况只发生在第3步中让你复制过去的两个dll文件之中,比如提示找不到 libgfortran_64-3 ,那么就把刚才复制过去的 libgfortran-3 改成
libgfortran_64-3 。提示找不到libgcc_s_seh_64-1 ,那么就把刚才复制过去的 libgcc_s_seh-1 改成 libgcc_s_seh_64-1 。
我后续发现VS有可能会默认你的Debug/Release模式为x86,这个要手动该为x64,否则当你#include LAPACK库的头文件时会出现找不到该头文件的情况
上述的所有需要的文件我也打包了,如果不想去网站一个个下载可以选择下载我这个包:https://download.csdn.net/download/weixin_44041403/12589655