No package ‘libnl-3.0‘ found-- No package ‘libnl-route-3.0‘ found(完美解决)

错误情况:

book@100ask:~/Desktop/rdma-core$ ./build.sh 
-- Could NOT find cython (missing: CYTHON_EXECUTABLE CYTHON_VERSION_STRING) 
-- Could NOT find pandoc (missing: PANDOC_EXECUTABLE PANDOC_VERSION_STRING) 
-- Could NOT find rst2man (missing: RST2MAN_EXECUTABLE RST2MAN_VERSION_STRING) 
-- Checking for modules 'libnl-3.0;libnl-route-3.0'
--   No package 'libnl-3.0' found
--   No package 'libnl-route-3.0' found
CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:419 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:597 (_pkg_check_modules_internal)
  CMakeLists.txt:486 (pkg_check_modules)


-- Configuring incomplete, errors occurred!
See also "/home/book/Desktop/rdma-core/build/CMakeFiles/CMakeOutput.log".
See also "/home/book/Desktop/rdma-core/build/CMakeFiles/CMakeError.log".

这是构建不成功的现象,需要重新进行安装依赖进行构建

 在构建 rdma-core 项目时遇到了依赖缺失的问题。

一、安装依赖包

1.1 安装 cython

sudo apt-get install cython

 

1.2 安装 pandoc

sudo apt-get install pandoc

 

1.3 安装 `rst2man`

sudo apt-get install python-docutils

1.4  安装 `libnl-3.0` 和 `libnl-route-3.0`

sudo apt-get install libnl-3-dev libnl-route-3-dev

二、确保 CMake 版本

确保你使用的是兼容的 CMake 版本。你可以使用以下命令检查 CMake 版本:

cmake --version

 

三、重新运行构建

在安装上述依赖项后,清理之前的构建并重新运行构建脚本:

cd ~/Desktop/rdma-core
rm -rf build
mkdir build
cd build
cmake ..
make

构建完成后的目录:

 

四、检查构建日志

如果仍然遇到问题,请查看 `CMakeOutput.log` 和 `CMakeError.log` 以获取更详细的错误信息。这些日志文件位于 `build/CMakeFiles` 目录中。

五、其他依赖项

根据项目需求,还可能需要安装其他依赖项。以下是一些常见依赖项的安装命令:

sudo apt-get install libibverbs-dev
sudo apt-get install librdmacm-dev

通过上述步骤,可以解决大部分的依赖问题并成功构建 `rdma-core` 项目。

当你遇到错误信息 `checking for LIBNLGENL3... no configure: error: Package requirements (libnl-genl-3.0 >= 3.1) were not met:` 并提示找不到包 `libnl-genl-3.0`,这意味着编译软件时所需的库文件未找到或版本不符合要求。 ### 解决步骤: #### 1. 安装缺失的依赖库 首先尝试安装 `libnl-genl-3.0` 及其开发文件。根据不同Linux发行版使用相应的包管理工具: **对于基于Debian/Ubuntu的系统:** ```bash sudo apt-get update sudo apt-get install libnl-genl-3-dev ``` **对于基于Red Hat/CentOS/Fedora的系统:** ```bash sudo yum install libnl3-devel # CentOS/RHEL # 或者在较新的 Fedora 上: sudo dnf install libnl3-devel ``` #### 2. 检查环境变量配置 如果已经安装了所需库但是仍然报错,可能是由于路径问题导致无法找到该库。此时你可以考虑调整 `PKG_CONFIG_PATH` 环境变量来包含自定义安装目录下的 `.pc` 文件所在的路径。 例如,如果你把库安放在 `/usr/local/lib/pkgconfig` 目录下,那么可以在命令行前加上以下内容再试一次配置过程: ```bash export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH ./configure ``` #### 3. 手动指定头文件和链接库的位置 作为最后的选择,可以直接设置两个特定于此库的环境变量 `LIBNLGENL3_CFLAGS` 和 `LIBNLGENL3_LIBS` 来代替调用 `pkg-config` 查询路径的方式。假设你知道它们的具体位置(比如分别位于 `/usr/include/libnl3/netlink/genl/` 和 `/usr/lib/x86_64-linux-gnu/`),则可以这样做: ```bash export LIBNLGENL3_CFLAGS="-I/usr/include/libnl3/netlink/genl/" export LIBNLGENL3_LIBS="-L/usr/lib/x86_64-linux-gnu/ -lnl-genl-3" ./configure ``` 以上方法应该能够解决大多数情况下因为缺少 `libnl-genl-3.0` 库而引起的编译错误问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_904477151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值