在 MacOS Monterey 上构建 libcamera

问题描述 投票:0回答:2

我正在尝试在 MacOS Monterey 上构建 libcamera,因为它是 raspberrypi/libcamera-apps 所需的依赖项。

meson build
,如here所述,遇到错误
src/libcamera/meson.build:68:0: ERROR: C shared or static library 'gnutls' not found

为了解决这个问题,我通过自制程序安装了 gnutls。由于这没有帮助,我还尝试通过 MacPorts 安装 gnutls-devel。这也没有帮助。

执行

pkg-config --list-all | grep gnutls
返回
gnutls     GnuTLS - Transport Security Layer implementation for the GNU system

有谁知道如何解决吗?我还想了解在 MacOS 下进行 Linux 开发时管理类似依赖项的首选方法是什么。

谢谢!

macos raspberry-pi meson-build
2个回答
0
投票

为了解决上述问题,我已经找到了 MacBook 上 gnutls 的位置。下一步,我通过执行

LIBRARY_PATH
将环境变量
export LIBRARY_PATH=/opt/local/lib
设置到此位置。


0
投票

如果介子找不到软件包并且您已经安装了它,您可能只需要链接它即可。

以下是大多数此类库的一般步骤:

第 1 步:请勿尝试通过

ls
cd
手动查找库(除非您是新用户并且想要探索根目录)。

第 2 步:使用

find
命令查找匹配的
.dylib
文件。


find / -name "*[library name]*.dylib" 2> /dev/null


# Since we are looking for the gnutls library:
find / -name "*gnutls*.dylib" 2> /dev/null

输出:

/usr/local/Caskroom/miniconda/base/lib/python3.11/site-packages/cv2/.dylibs/libgnutls.30.dylib
/usr/local/Caskroom/miniconda/base/envs/metagpt/lib/python3.10/site-packages/cv2/.dylibs/libgnutls.30.dylib
/usr/local/lib/libgnutls.30.dylib
/usr/local/lib/libgnutlsxx.dylib
/usr/local/lib/libgnutls.dylib
/usr/local/lib/python3.10/site-packages/cv2/.dylibs/libgnutls.30.dylib
/usr/local/lib/libgnutls-dane.dylib
/usr/local/lib/libgnutlsxx.30.dylib
/usr/local/lib/libgnutls-dane.0.dylib
/usr/local/Cellar/gnutls/3.8.4/lib/libgnutls.30.dylib
/usr/local/Cellar/gnutls/3.8.4/lib/libgnutlsxx.dylib
/usr/local/Cellar/gnutls/3.8.4/lib/libgnutls.dylib
/usr/local/Cellar/gnutls/3.8.4/lib/libgnutls-dane.dylib
/usr/local/Cellar/gnutls/3.8.4/lib/libgnutlsxx.30.dylib
/usr/local/Cellar/gnutls/3.8.4/lib/libgnutls-dane.0.dylib
...

/
告诉find搜索整个根目录,这需要很长时间。如果您使用
gnutls
安装了
brew install gnutls
,则难以捉摸的
.dylib
应位于
/usr/local
(Intel Mac) 或
/opt/local
(Apple Silicon) 下。因此,只需单独运行这些命令即可:

find /usr/local -name "*gnutls*.dylib" 2> /dev/null
find /opt/local -name "*gnutls*.dylib" 2> /dev/null

第3步:正如OP在他的回答中提到的:将包含(在我的例子中)

libgnutls.30.dylib
的目录添加到您的
LIBRARY_PATH
中,如下所示:


export LIBRARY_PATH=$LIBRARY_PATH:/usr/local
#                   -------------
#                   Very Important!

应添加

$LIBRARY_PATH:
,以防
LIBRARY_PATH
环境变量已存在。添加它会将我们的新路径附加到列表中,而不是完全覆盖它。

© www.soinside.com 2019 - 2024. All rights reserved.