我有一堆用自制软件安装的库,但我不知道在 pkg-config 的搜索路径中获取它们的正确方法是什么。现在我有
export PKG_CONFIG_PATH=$(find /usr/local/Cellar -name 'pkgconfig' -type d | grep lib/pkgconfig | tr '\n' ':' | sed s/.$//)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但它确实减慢了我的 shell 启动时间,现在大约需要 2 秒。我确信自制软件内置了更好的方法,但我在文档中找不到它。
l -*_*c l 12
将 转换为find以冒号:分隔的静态列表PKG_CONFIG_PATH 列表以减少启动时间。
步骤 1. 运行pkg-config --list-all以确定哪些包已经被
pkg-config --list-all
# tidy tidy - tidy - HTML syntax checker
# tesseract tesseract - An OCR Engine
# …
Run Code Online (Sandbox Code Playgroud)
步骤 2. 运行find以确定pkgconfig包含 *.pc 文件的目录。
# long form `find`
find /usr/local/Cellar -name 'pkgconfig' -type d | grep lib/pkgconfig | tr '\n' ':' | sed s/.$//
# short form `find`
find / -name "pkgconfig" -print
# /usr/local/Cellar/abc/0.1.5/lib/pkgconfig:…/usr/local/Cellar/xyz/2.6/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)
第3步:添加感兴趣的路径库,那些尚未被发现pkg-config,到PKG_CONFIG_PATH。
选项:使用/usr/local/Cellar/…需要随每次版本号更改而更新的路径。
export PKG_CONFIG_PATH=/usr/local/Cellar/abc/0.1.5/lib/pkgconfig
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/Cellar/abc/0.1.5/lib/pkgconfig
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/my/build/from/source/mmmm/0.1.5/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)
选项:当 Cellar 链接(典型)时,/usr/local/opt/…可以找到并使用与版本无关的路径。
sudo find / -name "uvw" -print
# /usr/local/Cellar/uvw
# /usr/local/opt/uvw
ls -l /usr/local/opt/uvw
# /usr/local/opt/uvw@ -> ../Cellar/uvw/4.2_1
Run Code Online (Sandbox Code Playgroud)
设置这些:
export PKG_CONFIG_PATH=/usr/local/opt/uvw/share/pkgconfig
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opt/xyz/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9814 次 |
| 最近记录: |