Ошибка: нет предыдущего прототипа для __sputc
Я работаю над установкой avconv для проекта, над которым я работаю. Я использовал эту ссылку для установки avconv на OSX и эту ссылку на сборку 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 ответ
Похоже, вы используете неправильный компилятор для этого проекта. использование
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.
Также помните о том, что вам нужно отключить "вход" устройства ввода, чтобы компиляция работала, например так:
./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 чтобы обойти отсутствующий тип семафора_*.