要让 pkg-config 找到 ~/.local/ 下的包,核心是把 ~/.local/lib/pkgconfig(以及 ~/.local/share/pkgconfig)加入 PKG_CONFIG_PATH。下面一步步说明。
一、默认搜索路径(不含 .local)
pkg-config 默认只搜系统目录:
/usr/lib/pkgconfig/usr/share/pkgconfig
~/.local/lib/pkgconfig 默认不在里面,所以直接用会报 No package found。
二、.local 下的 .pc 文件位置
用户本地安装(--prefix=~/.local)的库,.pc 文件一般在:
~/.local/lib/pkgconfig/xxx.pc
~/.local/share/pkgconfig/xxx.pc
三、临时生效(当前终端)
# 加入 .local 的两个常见路径
export PKG_CONFIG_PATH="$HOME/.local/lib/pkgconfig:$HOME/.local/share/pkgconfig:$PKG_CONFIG_PATH"# 测试是否找到
pkg-config --modversion 你的包名
四、永久生效(所有终端)
编辑你的 shell 配置:
# bash
nano ~/.bashrc# zsh
nano ~/.zshrc
添加一行:
export PKG_CONFIG_PATH="$HOME/.local/lib/pkgconfig:$HOME/.local/share/pkgconfig:$PKG_CONFIG_PATH"
保存后生效:
source ~/.bashrc # 或 ~/.zshrc
五、验证当前搜索路径
pkg-config --variable pc_path pkg-config
输出里能看到 ~/.local/lib/pkgconfig 就成功了。
六、常见问题
- 路径写错:确认 .pc 文件实际在
~/.local/lib/pkgconfig下。 - 顺序问题:把 .local 路径写前面,优先用本地版而非系统版。
- 多版本冲突:用
find ~/.local -name "*.pc"检查是否有重复。
