在 macos-14 arm m1 上找不到 libavcodec/avcodec.h 文件

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

我正在编写一个链接到 ffmpeg 开发库的程序,并且一切在 ubuntu-22-x86-64 ubuntu-24-x86-64 macos-13-x86-64 上都能正常工作,但在 macos-14-arm-m1 上却不能。

我使用

brew install ffmpeg
安装 ffmpeg,然后运行以下命令:

cc -fPIC -I/opt/homebrew/Cellar/erlang/26.2.5/lib/erlang/erts-14.2.5/include -Ic_src/xav -shared  -undefined dynamic_lookup c_src/xav/xav_nif.c c_src/xav/reader.c c_src/xav/decoder.c c_src/xav/utils.c -o /Users/runner/work/xav/xav/_build/test/lib/xav/priv/libxav.so -lavcodec -lswscale -lavutil -lavformat -lavdevice -lswresample

导致

In file included from c_src/xav/xav_nif.c:1:
c_src/xav/decoder.h:1:10: fatal error: 'libavcodec/avcodec.h' file not found
#include <libavcodec/avcodec.h>
         ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from c_src/xav/reader.c:1:
c_src/xav/reader.h:1:10: fatal error: 'libavcodec/avcodec.h' file not found
#include <libavcodec/avcodec.h>
         ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from c_src/xav/decoder.c:1:
c_src/xav/decoder.h:1:10: fatal error: 'libavcodec/avcodec.h' file not found
#include <libavcodec/avcodec.h>
         ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
In file included from c_src/xav/utils.c:1:
c_src/xav/utils.h:2:10: fatal error: 'libavcodec/avcodec.h' file not found
#include <libavcodec/avcodec.h>
         ^~~~~~~~~~~~~~~~~~~~~~

当我找到头文件和动态库并设置 C_INCLUDE_PATH、LD_LIBRARY_PATH 等时,编译可以工作,但我认为不需要这样做,不是吗?

我的理解是,如果我使用某些包管理器安装 ffmpeg,ffmpeg 头文件和 .dylib 或 .so 应该可以自动搜索(只要包管理器的安装脚本中没有错误)。这是正确的吗?

相同的命令适用于 macos-13-intel-x86-64

c macos ffmpeg arm apple-m1
1个回答
0
投票

您可以在 Macos/Intel 上运行:

ls -ld /usr/local/include/libavcodec
lrwxr-xr-x  1 me  staff  41 16 Jul 23:42 /usr/local/include/libavcodec -> ../Cellar/ffmpeg/7.0.1/include/libavcodec

但是在Macos/m1上运行

/usr/local/include/libavcodec
brew install ffmpeg
不存在

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