Windows使用mingw编译openblas

版权声明:本文为博主ouening原创文章,未经博主允许不得恶意复制转载,需要注明出处,尊重知识成果!技术交流请联系[email protected]! https://blog.csdn.net/ouening/article/details/83034750

系统环境:win10
软件环境:
(1)mingw 5.3,使用Qt5.11.1自带的
(2)OpenBLAS-0.2.20
(3)Armadillo9.1

几点说明:
(1)关于openblas在window下的使用多是介绍其window的预编译版,使用VS编译器,但笔者强迫症严重,平时尽量使用开源免费的工具/软件,虽说VS Studio有社区版,但还是不喜欢一大堆安装在电脑上,window下的mingw没有像Linux系统下有make之类的工具,在上一篇文章中已经介绍了mingw配合msys来编译gsl的,如法炮制也可以编译openblas,具体安装msys请参考笔者另一篇博文

https://blog.csdn.net/ouening/article/details/82993947

安装完msys之后的文件:
在这里插入图片描述

(2)本人使用的mingw直接采用Qt5.11.1自带的,因为想使用Qt配合一些数值计算库作GUI程序,为了保证程序的兼容稳定性统一使用自带的mingw,前面博文配置gsl也是为此服务的,下图是关于gcc的一些信息,记得gcc路径要在环境变量里面,或者是在前面博文里面介绍的在msys文件夹下双击msys.bat打开控制台
在这里插入图片描述
(3)armadillo是一个C++矩阵运算库,语法和matlab相似,其有些矩阵运算需要用到blas/cblas,根据官方文档使用openblas,故此文是为了记录如何在window使用armadillo调用openblas过程的openblas编译部分,关于armadillo配合Qt的使用准备后面再写系统的博文记录分享。

正题:
(1)下载openblas0.2.20版本,最新的0.3.2版本没有测试过
在这里插入图片描述
(2)下载之后解压,然后在msys双击msys.bat打开的控制台里面cd到该路径,查看解压后的文件可以看到有一个Makefile文件的了,直接运行make -j8 以8线程进行编译。
注意:这里出现了问题,本人在实验室电脑编译的时候可以顺利编译,同样是Qt5.11.1版本自带的mingw,在自己电脑上编译就出错了,有两处错误,第一处是

make: [libs] Error 1 (ignored)

这个可以忽略,还能继续编译一段时间;

另一个错误是:

Makefile:138: recipe for target `libs' failed

其实这个错误前面还有比较详细的内容,但是忘了保存完整的错误信息了,只记录了前面这段错误。
如果出现了该错误提示,经过网上查找并没有直接答案,我是在https://github.com/xianyi/OpenBLAS/issues/687看到的回答想到的,就是将编译的选项BINARY修改为32为,因为Qt5.11.1自带的5.3版本的32位的,修改后的编译命令变为:

make BINARY=32 -j8

接着就可以继续编译了,最终编译成功的结果提示如下:

在这里插入图片描述

太晚了,关于armadillo在Qt链接openblas的使用下次有空再写~~~

猜你喜欢

转载自blog.csdn.net/ouening/article/details/83034750