如果没有手动干预,pkg-config 无法找到任何库

如果没有手动干预,pkg-config 无法找到任何库

我不是 C++ 开发人员,通常使用 Conan、CMake 或 Makefile。我第一次听说是pkg-config在昨天,当时柯南开始出错,无法解析gl包。

我设法让它与export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig".

今天,我尝试构建spotify_playercargo但失败了,无法找到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这样做。如果您有更好的解决方案,请创建一个答案,我可能会将其标记为该问题的答案。

相关内容