我正在为我正在开发的项目安装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和安装的命令行工具)
由于
答案 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_ *类型。