我正在构建一个 Rust 项目,每当我尝试构建时,我都会得到
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "`\"pkg-config\" \"--libs\" \"--cflags\" \"libudev\"` did not exi
t successfully: exit status: 1\nerror: could not find system library 'libudev' required by the 'libudev-sys' crate\n\n--- stderr\nPackage l
ibudev was not found in the pkg-config search path.\nPerhaps you should add the directory containing `libudev.pc'\nto the PKG_CONFIG_PATH e
nvironment variable\nNo package 'libudev' found\n"', /home/nikola/.cargo/registry/src/github.com-1ecc6299db9ec823/libudev-sys-0.1.4/build.r
s:38:41
它的错误消息足够清晰,但问题是,我在网上能找到的所有解决方案中,有 10 多个解决方案提到安装pkg-config
和libudev-dev
.我已经安装并重新安装了,但没有该libudev.pc
文件
运行apt search udev
给出这些条目
librust-libudev-sys-dev/focal 0.1.4-1 amd64
FFI bindings to libudev - Rust source code
libu2f-udev/focal,focal,now 1.1.10-1 all [installed]
Universal 2nd Factor (U2F) common files
libudev-dev/focal-updates,now 245.4-4ubuntu3.17 amd64 [installed]
libudev development files
libudev1/focal-updates,now 245.4-4ubuntu3.17 amd64 [installed,automatic]
libudev shared library
缺少libudev.pc
➜ ~project git:(master) ✗ locate libudev.pc
➜ ~project git:(master) ✗
➜ ~pkgconfig: echo $PKG_CONFIG_PATH
➜ ~pkgconfig:
答案1
尝试这个:
echo 'export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig/"' >> $HOME/.bashrc
编辑:忘记提及,您必须关闭并重新打开任何打开的终端或source $HOME/.bashrc
在当前终端中执行才能使更改生效。
答案2
您使用的pkg-config
是 Homebrew,默认情况下它只知道 Homebrew 打包的库。
在 Ubuntu 上,如果您打算使用 Ubuntu 提供的软件包(例如 )进行开发libudev-dev
,您应该真正使用 Ubuntu 提供的pkg-config
:卸载 Homebrew 版本,然后pkg-config
使用apt
.