“/ usr / bin / ld:在Caffe编译中找不到-lopenblas”错误

时间:2015-09-02 12:43:22

标签: caffe openblas

当我编译Caffe时,我遇到了这个错误,尽管安装了OpenBLAS:

AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so
/usr/bin/ld: cannot find -lopenblas
collect2: ld devolvió el estado de salida 1
make: *** [.build_release/lib/libcaffe.so] Error 1

有解决方案吗?

3 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。甚至将库目录“/ opt / OpenBLAS / lib /”添加到ldconfig缓存也没有帮助(因为我的libopenblas.so位于“/opt/OpenBLAS/lib/libopenblas.so”)。

使用cmake帮助了我。从caffe根目录中试试这个:

mkdir build cd build cmake -DBLAS=open .. make all make runtest

如果需要使用make,请将libopenblas.so的符号链接添加到/ usr / lib。我做了以下事情:

ln -s /opt/OpenBLAS/lib/libopenblas.so /usr/lib/libopenblas.so

答案 1 :(得分:6)

即使在克隆OpenBlas之后包括基本包,并且将在14.04和16中链接相应的库。

apt install liblapack-dev liblapack3 libopenblas-base libopenblas-dev

apt install liblapack-dev liblapack3 libopenblas-base libopenblas-dev

答案 2 :(得分:0)

我看到了类似的问题(我出于某种原因再次编译caffe)。 我发现构建器正在寻找的库文件(-lcblas或-latlas意味着libcblas.so和libatlas.so)位于/ usr / lib64 / atlas下。所以只需在/ usr / lib64下添加符号链接就像这样。

protocol CustomTableViewCellDelegate{
    func getInputed(cell:CustomTableViewCell)
}

//the session is to end
func textFieldDidEndEditing(cell:CustomTableViewCell) {
    if delegate != nil {
        self.delegate?.getInputed(self)
    }
}

func test(cell:CustomTableViewCell) {
    print(cell.myTextField.text)
    print(cell.myTextField.tag)
    print(cell.myTextField2.text)
    print(cell.myTextField2.tag)

    self.myTableView.reloadData()
}

但我想更合适的方法是设置Makefile.config(CBLAS路径)。 (我认为默认路径会消除它阅读评论的说法,但事实并非如此。)希望这对任何人都有帮助。