‘cblas_dasum’未定义的引用问题的解决

前言

在编译caffe或caffe_ssd框架代码时,最后link阶段会遇到‘cblas_dasum'之类的问题,如下面所示。

.build_release/lib/libcaffe.so:对‘cblas_sgemv’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_dgemm’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_sscal’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_dgemv’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_saxpy’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_ddot’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_dasum’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_sgemm’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_dscal’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_scopy’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_sasum’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_daxpy’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_dcopy’未定义的引用
.build_release/lib/libcaffe.so:对‘cblas_sdot’未定义的引用

解决办法 

之前已经通过命令sudo apt-get install libblas-dev把blas库安装好了,但是怎么make都不行。后来才发现下面这行(in Makefile.config)最后有空格。

BLAS := atlas

也就是说用vi打开Makefile.config,并移动光标到该行最后字符时,光标应该落在atlas的s上。如果落在s后面的空格,那么BLAS就等于atlas+空格,从而导致Makefile里面进不去atlas这个分支。 

 

你可能感兴趣的:(深度学习)