Gue*_*OCs 1 ffmpeg compiler-errors compilation
我正在编译 ffmpeg
./configure \
--prefix=${BUILD_DIR}/desktop/${ARCH} \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--enable-shared \
#--extra-cflags="-I/opt/intel/mediasdk/include" \
#--extra-ldflags="-L/opt/intel/mediasdk/lib" \
#--extra-ldflags="-L/opt/intel/mediasdk/plugins" \
--arch=${ARCH} \
--enable-libmfx \
--enable-vaapi \
--enable-opencl \
--disable-debug \
--enable-nvenc \
--enable-cuda \
--enable-cuvid \
#--enable-libvorbis \
--enable-libvpx \
--enable-libdrm \
--enable-gpl \
--enable-runtime-cpudetect \
--enable-libfdk-aac \
--enable-libx264 \
--enable-libx265 \
--enable-openssl \
--enable-pic \
--extra-libs="-lpthread -libm -libc -lz -ldl" \
--enable-nonfree
Run Code Online (Sandbox Code Playgroud)
在那里ARCH=x86_64
,但它总是给我这个配置中的输出:
install prefix /home/deps/ffmpeg/build/desktop/x86_64
source path .
C compiler gcc
C library glibc
ARCH x86 (generic)
...
Run Code Online (Sandbox Code Playgroud)
uname -m
说我的机器是 x86_64,所以我不想只在 x86 上构建。
怎么了?
别担心你有一个 x86_64 ffmpeg。提到的消息对于 x86_64 编译是正常的,因为 ffmpegconfigure
将所有 x86 架构组合在一个“x86”架构中:
case "$arch" in
...
i[3-6]86*|i86pc|BePC|x86pc|x86_64|x86_32|amd64)
arch="x86"
Run Code Online (Sandbox Code Playgroud)
并将 x86_64 放在subarch
关卡中
您可以使用file
命令来检查生成的 .so 文件是什么架构:https : //superuser.com/questions/791506/how-to-determine-if-a-linux-binary-file-is-32-bit-or -64 位