我不是 C++ 开发人员,通常使用 Conan、CMake 或 Makefile。我第一次听说是pkg-config
在昨天,当时柯南开始出错,无法解析gl
包。
我设法让它与export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig"
.
今天,我尝试构建spotify_player
,cargo
但失败了,无法找到alsa
库:
--- stderr
thread 'main' panicked at '`PKG_CONFIG_ALLOW_SYSTEM_CFLAGS="1" PKG_CONFIG_ALLOW_SYSTEM_LIBS="1" "pkg-config" "--libs" "--cflags" "alsa"` did not exit successfully: exit status: 1
error: could not find system library 'alsa' required by the 'alsa-sys' crate
--- stderr
Package alsa was not found in the pkg-config search path.
Perhaps you should add the directory containing `alsa.pc'
to the PKG_CONFIG_PATH environment variable
No package 'alsa' found
', /home/xevion/.cargo/registry/src/index.crates.io-6f17d22bba15001f/alsa-sys-0.3.1/build.rs:13:18
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
我环顾四周,alsa.pc
发现/usr/lib/x86_64-linux-gnu/pkgconfig/alsa.pc
。以与上面完全相同的方式导出变量可以修复它。
也就是说,虽然它有效,但有些地方出了问题。我能够以spotify_sound
与几个月前完全相同的方式构建和安装。应该什么都没有改变。
- 我已经重新安装了所有与
alsa
、 以及相关的库pkg-config
。 - 我正在一个新的终端会话中工作。
- 我已经确认
pkg-config
没有找到它pkg-config --debug alsa
。 - 在 Lenovo ThinkPad X1 Carbon Gen 6 上运行 Pop!_OS 22.04 LTS (Ubuntu 22.04)。
.pc
文件可以在我的计算机上找到 - 在我的计算机中导出.bashrc
似乎是一个愚蠢的解决方案 - 更大的层面上正在发生一些事情。
如何修复pkg-config
我的机器?
答案1
所以我的解决方案并不是特别好。问题是我的 Linux Brew 已pkg-config
安装(对于pyenv
)并pkg-config
在我的系统上解决了它(而不是apt
已安装的版本)。
这意味着我正常安装的任何库(alsa
在本例中)都不会得到解析,因为它们不是为 Linux Brew 设置的pkg-config
。
跑步
brew uninstall --ignore-dependencies pkg-config
卸载了它(并且pyenv
还没有抱怨)。
PATH
一个更理想的解决方案是有序的,但我对操纵或其本身了解不够,无法pkg-config
这样做。如果您有更好的解决方案,请创建一个答案,我可能会将其标记为该问题的答案。