Windows 10 VS2019 环境下安装使用BLAS线性代数库

最近想用c++写一个简单的cnn网络,需要用到blas库,学习了网上大佬们的安装方法,尤其借鉴了这位大佬的博文:https://blog.csdn.net/weixin_35776029/article/details/52719079 (ps:标题都模仿人家的),遇到了一些问题,当然也解决了,后文会说,主要有些部分和大佬的不太一样,稍微记录一下,希望能帮助到看到这篇博文的你。

材料准备

1.下载blas库,下载地址:https://github.com/xianyi/OpenBLAS
2.下载并安装perl,下载地址:https://strawberryperl.com/
3.cmake下载官网:https://cmake.org/,我安装的版本是3.16.0,版本差距不是很大应该就可以.

开始安装

step1:安装blas,记录下载目录(此处千万注意:openblas库安装目录中千万不要出现中文字符,否则后面编译可能出错):我的是:D:\1_guo_ALL\OpenBLAS

step2:下载prel,
在这里插入图片描述
选择版本,64位就选上面的,32位就选下面的。
安装没啥好讲的,如果出现“把perl加入环境变量path”的选项,一定要勾选,没有就继续安装。然后测试:
在这里插入图片描述
step3:安装cmake,这个网上资料很多,而且安装的话也没啥好讲的。

step4:创建cmake生成目录,我的是:D:\1_guo_ALL\OpenBLAS\OpenBLAS_Bulid

step5:打开cmake,输入两个路径,上面是opencv下载路径,下面是cmake生成路径(就是前面两个目录)。
我的分别是:
D:/1_guo_ALL/OpenBLAS/OpenBLAS-develop/OpenBLAS-develop
D:/1_guo_ALL/OpenBLAS/OpenBLAS_Bulid
在这里插入图片描述

点击一次Configure,然后出现一个窗口,上面是vs的版面,下面选择默认就好。
在这里插入图片描述

然后点击generate直到红色部分变白。

step7:打开cmake生成目录,点击OpenBlLAS.sln,然后可以在vs上查看其代码,此时我们需要在vs中编译。
点击 视图->解决方案资源管理器,结果可以看到这些:
在这里插入图片描述

然后选择ALL_BUILD,右键生成
在这里插入图片描述

等待一段时间,最后出现“成功9个,失败0个”(我的是这样,如果失败太多的话可能就是没成功)

***step8:***打开D:\1_guo_ALL\OpenBLAS\OpenBLAS_Bulid\lib\DEBUG后出现openblas.lib,那大概率成功了。
在这里插入图片描述

step9: 下面就是配置环境了,新建c++项目,点击视图->资源管理器,右键项目名然后点击属性找到c++目录下的包含目录和库目录
包含目录中输入:
D:\1_guo_ALL\OpenBLAS\OpenBLAS_Bulid
D:\1_guo_ALL\OpenBLAS\OpenBLAS_Bulid\generated
库目录中输入:
D:\1_guo_ALL\OpenBLAS\OpenBLAS_Bulid\lib\DEBUG
这里稍微说一下,包含目录中的路径下是.h的头文件,库目录中的路径下是.lib文件,有时候没有配置好,在运行代码中报错说找不到xxx.h文件多为包含目录没有配置好,找到对应xxx.h的路径加入进去,可能就不会报错了。
然后是 链接器->输入->附加依赖项,点解输入openblas.lib。
如我新建了一个blas_test的项目,右键属性。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

***step:***改为debug x64

在这里插入图片描述
测试:

extern "C" {
#include <cblas.h>
}
#include <iostream>

int main() {
	float a[1] = { 2 };
	float b[1] = { 3 };
	float c[1] = { 0 };
	cblas_sgemm(CblasRowMajor,
		CblasNoTrans, CblasNoTrans,
		1, 1, 1,
		1,
		a, 1,
		b, 1,
		0,
		c, 1);
	std::cout << *c << std::endl;
	system("pause");
	return 0;
}

输出:
在这里插入图片描述

大功告成!!!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值