Ubuntu下安装NetCDF时如何向LD_LIBRARY_PATH添加路径?
解决Ubuntu下NetCDF编译时找不到HDF5库的问题
1. 定位HDF5的实际安装路径
先找到HDF5库文件的位置,分两种常见场景:
- 若通过Ubuntu包管理器(
apt install libhdf5-dev)安装,库路径通常为/usr/lib/x86_64-linux-gnu(64位系统)或/usr/lib/i386-linux-gnu(32位系统) - 若手动源码编译安装HDF5,默认路径是
/usr/local/lib,或你自定义的安装目录(如~/hdf5/lib)
用以下命令精准查找:
find / -name "libhdf5.so" 2>/dev/null
输出结果中,取libhdf5.so所在的父目录(比如输出/usr/lib/x86_64-linux-gnu/libhdf5.so,对应库路径就是/usr/lib/x86_64-linux-gnu)
2. 设置LD_LIBRARY_PATH环境变量
临时生效(仅当前终端会话)
假设找到的HDF5库路径是/usr/lib/x86_64-linux-gnu,执行:
export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
此命令会将HDF5库路径添加到现有路径的最前端,确保系统优先识别。
永久生效(所有终端会话)
编辑bash配置文件(如~/.bashrc):
nano ~/.bashrc
在文件末尾添加一行:
export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
保存退出后,执行以下命令让配置立即生效:
source ~/.bashrc
3. 验证与收尾
执行以下命令确认路径已添加:
echo $LD_LIBRARY_PATH
同时更新系统库缓存:
sudo ldconfig
4. 重新编译NetCDF
回到NetCDF编译目录,重新执行编译命令(如make或cmake --build .)。若使用cmake构建,也可直接指定HDF5路径跳过环境变量设置:
cmake -DHDF5_DIR=/usr/lib/x86_64-linux-gnu/cmake/hdf5 ..
或直接指定库与头文件路径:
cmake -DHDF5_LIBRARY=/usr/lib/x86_64-linux-gnu/libhdf5.so -DHDF5_INCLUDE_DIR=/usr/include/hdf5/serial ..
内容的提问来源于stack exchange,提问作者PiriReizor99
相关产品推荐
相关产品推荐

