错误:没有'__sputc'的先前原型

时间:2014-08-17 16:09:19

标签: macos avconv gnutls

我正在为我正在开发的项目安装avconv。我一直在使用this link在OSX上安装avconv而this one在构建Gnutls for OSX时引导我完成此操作。 Gnutls现在似乎已成功安装,但当我尝试make然后sudo make install安装avconv时,我收到以下错误:

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和安装的命令行工具)

由于

1 个答案:

答案 0 :(得分: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_ *类型。