zstd 编译报错 error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
时间: 2024-10-27 22:01:10 浏览: 41
当在编译Zstandard (zstd) 时遇到 `error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory` 这样的错误,这表示编译过程试图加载名为 `libgmp.so.3` 的动态链接库(shared library),但找不到它。这通常是因为缺少gmp (GNU Multiple Precision Arithmetic Library) 库。
解决这个问题的步骤如下:
1. **检查库存在**:
首先,确认系统上是否安装了gmp库及其对应的版本 (`libgmp.so.3`). 在终端运行:
```
locate libgmp.so.3
```
如果返回的结果为空,说明库不存在或者路径不在搜索路径里。
2. **安装gmp**:
对于大多数Linux系统,你可以使用包管理器来安装:
- Debian/Ubuntu: `sudo apt-get install libgmp-dev`
-S mingw-w64-x86_64-gmp`
3. **重新配置编译**:
解决gmp缺失的问题后,回到Zstd的源码目录,执行重新配置:
```
cd /path/to/zstd/build
rm -f CMakeCache.txt
cmake .. (如果之前有配置过,请加上 -DCMAKE_BUILD_TYPE=RelWithDebInfo 或其他你所需的编译模式)
```
4. **重新编译**:
清理旧的构建文件,然后重新编译:
```
make clean
make -j $(nproc)
```
5. **再次尝试安装**:
如果上述步骤都完成,再尝试安装:
```
sudo make install
```
现在,你应该能够成功编译Zstd而不会遇到关于libgmp.so.3的错误。
阅读全文