0

我正在为我正在从事的项目安装 avconv。我一直在使用这个链接在 OSX 上安装 avconv,这个链接在为 OSX 构建 Gnutls 来指导我完成这个。Gnutls 现在似乎已成功安装,但是当我尝试安装 avconvmakesudo make install,我收到以下错误:

CC  libavdevice/alldevices.o
In file included from ./libavformat/avformat.h:254,
                 from libavdevice/alldevices.c:22:
/usr/include/stdio.h:346: error: no previous prototype for ‘__sputc’
make: *** [libavdevice/alldevices.o] Error 1

在尽可能多地查找此错误时,我要么只找到出现此错误的日志,要么在直接使用 Xcode 时找到与处理类似问题相关的帮助(我没有这样做 - 但我至少有 Xcode 和命令安装线工具)

谢谢

4

1 回答 1

0

看起来您为此项目使用了不正确的编译器。利用

sudo port select --list gcc

查看可用的编译器。在我的系统上,它看起来像这样:

Available versions for gcc:
    apple-gcc42
    llvm-gcc42
    none (active)

我不得不将其更改为 llvm-gcc42 以使编译工作:

sudo port select --set gcc apple-gcc42
Selecting 'llvm-gcc42' for 'gcc' succeeded. 'llvm-gcc42' is now active.

另请注意,您必须禁用输入设备“jack”才能使编译工作,如下所示:

./configure --extra-cflags=-I/opt/local/include --extra-ldflags=-L/opt/local/lib --enable-gpl --enable-libx264 --enable-libxvid --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-nonfree --enable-libfaac --enable-libmp3lame --enable-libspeex --enable-libvorbis --enable-libtheora --enable-libvpx --enable-libopenjpeg --enable-libfreetype --enable-doc --enable-gnutls --enable-shared --disable-indev=jack

或在https://trac.ffmpeg.org/attachment/ticket/43/ffmpeg-jack-osx.patch中应用补丁来解决缺少的 semaphore_* 类型。

于 2015-04-11T14:17:49.463 回答