修复在 Apple Silicon 和 Homebrew 上使用 pkg-config 的问题。

3

我正在M1 Mac上使用C++,并使用Time Machine将旧笔记本电脑的数据传输到新设备。旧笔记本电脑不是Apple Silicon MacBook。问题在于,我认为这破坏了我的Homebrew安装,因为它将默认位置从/usr/local/Cellar/更改为/opt/homebrew/Cellar/,所以现在我有两个Homebrew版本。在我得到新设备后,我重新安装了Homebrew(因为一开始使用Homebrew时什么都不起作用,以为使用Time Machine无法传输,哎呀)。

直到最近我才开始使用Homebrew,所以我没有注意到它会使带有外部库的C++程序编译非常困难,因为我需要的所有东西都在/opt/homebrew/Cellar/中的新Homebrew安装中, 除了 pkg-config。当我在bash脚本或命令行中调用它时,它会指向我的旧Homebrew安装。

例如,我在新的Homebrew安装中有pugixml,当我输入pkg-config --libs --cflags pugixml时:

Package pugixml was not found in the pkg-config search path.
Perhaps you should add the directory containing `pugixml.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pugixml' found

pkg-config 能够在旧的 homebrew 安装中找到库,但我的唯一选择是手动检查新的 homebrew 安装中的 .pc 文件,并在我的 Makefile 中输入标志。我不想这样做。有什么最好的方法来确保 pkg-config 正确工作?如果有人知道如何在命令行中使用新安装的 pkg-config ,那将解决我目前所有的问题。

编辑:我忘了提到这一点 - 当我使用 which 命令并询问 which pkg-config 时,它输出 /opt/homebrew/bin/pkg-config。这有点令人困惑,因为这是新位置。

1个回答

0

使用官方卸载脚本删除旧的(Intel)安装。

您需要使用以下命令使其可执行:

chmod +x uninstall.sh

并用它运行

./uninstall.sh --path=/usr/local

然后在新的 M1 版本下重新安装您需要的所有内容,路径为 /opt/homebrew


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接