我正在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
。这有点令人困惑,因为这是新位置。