如何在Ubuntu中解决链接错误?

3

我想使用make构建一个Caffe项目,在构建过程中出现以下错误:

CXX/LD -o .build_release/tools/compute_image_mean.bin
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_size@XZ_5.0'
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_stream_footer_decode@XZ_5.0'
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_uncompressed_size@XZ_5.0'
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_stream_buffer_decode@XZ_5.0'
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_buffer_decode@XZ_5.0'
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_end@XZ_5.0'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/compute_image_mean.bin] Error 1

我使用的是Ubuntu 14.04,尝试使用Anaconda编译Caffe。我已经按照安装教程安装了所有必要的软件,事实上我之前也使用过它,但现在我不知道出了什么问题。由于我不是非常有经验的Linux用户,所以不知道如何跟踪错误。
你能给我一些提示如何解决吗?

你确定所有的先决条件都已安装好了吗? - Shai
@Shai,是的,我完全按照安装教程操作了(实际上我之前已经安装并使用过了,所以现在不太明白问题出在哪里,甚至不知道如何跟踪它,因为我不是很有经验的Linux用户)。 - Il'ya Zhenin
2
你尝试过使用 sudo apt-get install liblzma-dev 命令吗? - Shai
@Shai,是的,我试过了。甚至尝试重新安装它(在Windows上有时会有帮助 :))。 - Il'ya Zhenin
4个回答

1

我在Ubuntu 16.04上遇到了类似的问题。这个方法解决了它:

apt install lzma-dev

-llzma添加到链接库。

0

只是让大家知道这个解决方案:将 LD_LIBRARY_PATH 导出为 "/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH",对我来说很有效。可惜的是,在忽略这个方案的情况下搜索了 30 分钟后才发现它。


0
建议: 有两件值得尝试的事情: 在~/.bashrc文件中: (1)
export LD_LIBRARY_PATH="/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"

(2) 注释掉

export PATH="/home/jackie/anaconda2/bin:$PATH".  

解释:

有时候,cmake会尝试基于Python执行(/home/jackie/anaconda2/bin/)来查找库依赖项。这将导致一些Anaconda的第三方库在链接时混入。

P.S. 使用make VERBOSE=1也是一个好方法来制作cmake项目,它可以显示gcc编译命令行。


-1
我得到了一个解决方案:
只需导出LD_LIBRARY_PATH="/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"

我将导出添加到~/.bashrc中,但出现错误后并没有发生改变。 - Il'ya Zhenin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接