您的位置:首页 > 运维架构

Ubuntu下如何编译OpenBLAS

2016-08-01 16:38 274 查看
1.下载源码压缩包(v0.2.18.zip):http://www.openblas.net/
2.编译
执行命令:make
默认编译的是支持多线程、无fortran库支持的。
如果需要编译单线程版、支持fortran库,执行命令:makeFC=gfortran USE_THREAD=0
(如未安装gfortran,执行命令“sudoapt-get install gfortran”进行安装)
3.安装
执行命令:makeinstall PREFIX=/home/yanghao/project/OpenBLASd_lib
PREFIX后面跟着的是lib文件导出目录,该目录将在使用该库的工程中引用。
4.建立连接
为了保证链接正确,需手动建立.a/.so文件的链接(其实安装后默认自动建立过了,这里也是为了导出到系统lib库中,因为gdb调试时需要系统lib库中存在本库文件)。这里仅介绍.so文件链接建立。
执行命令:
sudomkdir /usr/lib/OpenBLAS #在系统lib库中建立单独的目录
sudoln -s -f/home/yanghao/project/OpenBLASd_lib/lib/libopenblas_haswell-r0.2.18.so/home/yanghao/project/OpenBLASd_lib/lib/libopenblas.so
sudoln -s -f/home/yanghao/project/OpenBLASd_lib/lib/libopenblas_haswell-r0.2.18.so/home/yanghao/project/OpenBLASd_lib/lib/libopenblas.so.0
sudocp/home/yanghao/project/OpenBLASd_lib/lib/libopenblas_haswell-r0.2.18.so/usr/lib/OpenBLAS #拷贝到系统lib库中
sudoln -s -f /usr/lib/OpenBLAS/libopenblas_haswell-r0.2.18.so/usr/lib/OpenBLAS/libopenblas.so
sudoln -s -f /usr/lib/OpenBLAS/libopenblas_haswell-r0.2.18.so/usr/lib/OpenBLAS/libopenblas.so.0
sudogedit /etc/ld.so.conf.d/OpenBLAS.conf #create OpenBLAS.conf
sudoecho /usr/lib/OpenBLAS>/etc/ld.so.conf.d/OpenBLAS.conf #addcontent
sudoldconfig #刷新系统库缓存

注:
如何编译可以使用gdb调试的库?
编译选项中增加”-g-DDEBUG”即可。对于OpenBLAS,在Makefile.system中增加以下内容即可:
DEBUG=1#用于打开调试开关,在该文件已经存在了-g选项,只不过是通过本DEBUG开关进行控制是否生效的
ifeq($(DEBUG), 1)
EXTRALIB+= -DDEBUG
endif
这样编译生成的so库就包含了调试用的符号表等信息。通过gdb调试程序时,将断点设置一个位于.so中的库函数上,运行到该函数时,就可以直接进入该函数进行单步跟踪了(否则将无法进入该函数,gdb会直接跳过)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OpenBLAS