【问题标题】:c++ makefile not finding shared library for hdf5c++ makefile找不到hdf5的共享库
【发布时间】:2015-07-28 07:35:58
【问题描述】:

我正在 Kubuntu 上编译一个将使用 hdf5 库的 c++ 程序。我已经使用

安装了 hdf5 库
sudo apt-get install libhdf5-7
sudo apt-get install libhdf5-cpp-7

但是当我运行程序的生成文件时,我得到了

make[2]: *** No rule to make target '/usr/local/lib/libhdf5.so', needed by 'src/libHDF5Wrapper.so'.  Stop.

确实在/usr/lib 中查找没有libhdf5*-文件。我在安装 hdf5 时遗漏了什么吗?

【问题讨论】:

  • 如果我运行ldconfig -p | grep libhdf5.so 我得到libhdf5.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libhdf5.so,所以我猜你的makefile 错误地假设这个库位于/usr/local/lib。发布 makefile 以查看此假设的位置。
  • 谢谢!原来我有相同的路径;我改变了它,现在它可以工作了。但是现在它找不到标题H5Cpp.h。查看 Ubuntu 网页,这应该包含在我已安装的 libhdf5-serial-dev 中,并且位于 /usr/include/,但是当我查看它时它不存在,尽管其他一些 hdf5 标头存在。有什么想法吗?
  • 成功了,谢谢!我之前已经安装了它,但是当我安装其他一些库时发现它已经被删除了。

标签: c++ makefile installation shared-libraries kubuntu


【解决方案1】:

为了结束这个问题,我在这个答案中发表了评论:

可以使用online file list of the respective package 或通过以下方式找到 Ubuntu 上库的正确位置:

ldconfig -p | grep libhdf5.so

对我来说返回:

libhdf5.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libhdf5.so

您的 makefile 似乎错误地将库的位置假定为 /usr/local/lib,因此您需要调整 makefile 以匹配您计算机上的实际安装位​​置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-21
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 2016-06-04
    • 1970-01-01
    相关资源
    最近更新 更多