Добрый день.
Возникла следующая проблема, при компиляции linphon'a получаю следующую ошибку:
checking X11/extensions/Xv.h presence... yes
checking for X11/extensions/Xv.h... yes
checking for X11/extensions/Xvlib.h... no
checking for XvCreateImage in -lXv... no
configure: error: No video output API found. Install either X11+Xv headers or SDL library.
configure: error: ./configure failed for mediastreamer2
SDL lib скачал и установил, X11+xv - что такое не знаю, в дистрибутивах ничего подобного нет.
Прошу у вас помощи и разъяснений, уважаемые.
Заранее благодарен.
Спасибо за ответы,
установив libxv-dev, проблема была решена.
Собираю из исходников, потому что необходимо запустить сип-клиент на машине с ARM-архитектурой.
Конфигурация проходит успешно, но в конце получаю предупреждение:
text
configure: WARNING: ortp-0.15.0 breaks compatibility with older releases, because value returned by rtp_session_recvm_with_ts() has
changed. See the API documentation in doc/ for further readings.
Linphone build configuration ended.
* GTK interface will be compiled.
* Console interface will be compiled.
Now type 'make' to compile, and then 'make install' as root to install it.
После этого делаю sudo make и получаю ошибку:
text
CCLD mediastream
../src/.libs/libmediastreamer.so: undefined reference to `speex_echo_cancellation'
../src/.libs/libmediastreamer.so: undefined reference to `speex_echo_state_init'
../src/.libs/libmediastreamer.so: undefined reference to `speex_preprocess_state_destroy'
../src/.libs/libmediastreamer.so: undefined reference to `speex_preprocess_state_init'
../src/.libs/libmediastreamer.so: undefined reference to `speex_echo_ctl'
../src/.libs/libmediastreamer.so: undefined reference to `speex_echo_state_destroy'
../src/.libs/libmediastreamer.so: undefined reference to `speex_preprocess_ctl'
../src/.libs/libmediastreamer.so: undefined reference to `speex_preprocess_run'
collect2: ld returned 1 exit status
make[4]: *** [mediastream] Ошибка 1
make[4]: Leaving directory `/home/user/linphone-3.4.3/mediastreamer2/tests'
make[3]: *** [all-recursive] Ошибка 1
make[3]: Leaving directory `/home/user/linphone-3.4.3/mediastreamer2'
make[2]: *** [all] Ошибка 2
make[2]: Leaving directory `/home/user/linphone-3.4.3/mediastreamer2'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/home/user/linphone-3.4.3'
make: *** [all] Ошибка 2
Собственно это и вызывает затруднение, откуда такая ошибка и как можно от нее избавиться?
Прошу у вас помощи, уважаемые. Заранее благодарен.
Я не вникал глубоко в этот процесс, но вообще для запуска configure
не требуется sudo. Там есть README.arm, вы всё сделали, как там написано?
Вроде бы там сначала надо скомпилировать этот speex, и вообще там
примеры запуска configure.
Ещё можно взять исходные тексты linphone прямо с http://www.linphone.org
там есть пример команды. Создатся каталог linphone.
Спасибо, Peter, я действительно не знал, что там есть файл README.arm
Все делал по [url=http://www.mail-archive.com/linphone-users@nongnu.org/msg00434.html]этой[/url] инструкции.
Сейчас начал делать так, как написано в реадми и тут же возникла проблема:
Я установил себе кросскомпилятор, проверил его работу и убедился в работоспособности. Установлен он в /home/user/7803/toolchain/bin.
Я добавил путь к нему к переменной $PATH:
во время конфигурирования вижу много строк, в том числе и эти:
text
checking for arm-unknown-linux-uclibcgnueabi-gcc... arm-unknown-linux-uclibcgnueabi-gcc
checking for arm-unknown-linux-uclibcgnueabi-ranlib... arm-unknown-linux-uclibcgnueabi-ranlib
checking for arm-unknown-linux-uclibcgnueabi-ld... arm-unknown-linux-uclibcgnueabi-ld
checking for arm-unknown-linux-uclibcgnueabi-ar... arm-unknown-linux-uclibcgnueabi-ar
checking for arm-unknown-linux-uclibcgnueabi-ar... (cached) arm-unknown-linux-uclibcgnueabi-ar
checking for arm-unknown-linux-uclibcgnueabi-g++... arm-unknown-linux-uclibcgnueabi-g++
из чего делаю вывод, что все эти утилиты (не знаю как еще назвать) "видно".
Далее make и make install, таким же образом, как написано в реадми.
Дойдя до шага на котором надо конфигурировать libosip, я делаю так, как написано в реадми, изменив значение --host
Запускаю от суперпользователя, потому что подругому получаю сообщение
text
bash: ./configure: Отказано в доступе
После чего в показыавющихся строках я вижу следующее:
text
checking host system type... arm-unknown-linux-uclibcgnueabi
checking for arm-unknown-linux-uclibcgnueabi-gcc... no
checking for arm-unknown-linux-uclibcgnueabi-g++... no
checking for arm-unknown-linux-uclibcgnueabi-c++... no
checking for arm-unknown-linux-uclibcgnueabi-gpp... no
checking for arm-unknown-linux-uclibcgnueabi-aCC... no
checking for arm-unknown-linux-uclibcgnueabi-CC... no
checking for arm-unknown-linux-uclibcgnueabi-cxx... no
checking for arm-unknown-linux-uclibcgnueabi-cc++... no
checking for arm-unknown-linux-uclibcgnueabi-cl... no
checking for arm-unknown-linux-uclibcgnueabi-FCC... no
checking for arm-unknown-linux-uclibcgnueabi-KCC... no
checking for arm-unknown-linux-uclibcgnueabi-RCC... no
checking for arm-unknown-linux-uclibcgnueabi-xlC_r... no
checking for arm-unknown-linux-uclibcgnueabi-xlC... no
Из чего делаю вывод, что компилятора уже не "видно".
Прошу совета и разъяснений.
Если уж есть права root, то я бы установил этот кросс-компилятор
в предопределённое место, в /usr/local/. Он ведь получен компиляцией,
а не установлен из пакета? Тогда проще потом будет обеспечивать
доступность и библиотек и бинарных и заголовочных файлов.
Т.е. для начала удалите его из $HOME и установите туда, куда он
устанавливается по умолчанию. Также configure и make надо вводить
от пользователя.
...
checking eXosip2/eXosip.h usability... no
checking eXosip2/eXosip.h presence... no
checking for eXosip2/eXosip.h... no
configure: error: Could not find eXosip2 headers !
Делаю вывод, что хидеры не могут быть найдены потому что их просто нет.
Принимаю решение установить libexosip. Скачиваю и распаковываю.
text
# cd ../libeXosip2-3.5.0/
# ./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static
# make
...
eXosip.c: In function `_eXosip_transaction_init':
eXosip.c:76: error: `osip_srv_record_t' undeclared (first use in this function)
eXosip.c:76: error: (Each undeclared identifier is reported only once
eXosip.c:76: error: for each function it appears in.)
eXosip.c:76: error: parse error before "record"
eXosip.c:84: error: `record' undeclared (first use in this function)
eXosip.c:88: error: `OSIP_SUCCESS' undeclared (first use in this function)
eXosip.c:90: warning: implicit declaration of function `osip_transaction_set_srv_record'
eXosip.c: In function `eXosip_transaction_find':
eXosip.c:106: error: `OSIP_SUCCESS' undeclared (first use in this function)
eXosip.c:110: error: `OSIP_NOTFOUND' undeclared (first use in this function)
eXosip.c: In function `_eXosip_retry_with_auth':
eXosip.c:130: error: `OSIP_BADPARAMETER' undeclared (first use in this function)
eXosip.c:134: error: `OSIP_UNDEFINED_ERROR' undeclared (first use in this function)
eXosip.c:154: warning: passing arg 1 of `osip_list_get' from incompatible pointer type
eXosip.c:160: error: `OSIP_SYNTAXERROR' undeclared (first use in this function)
eXosip.c:1430: warning: passing arg 1 of `osip_list_add' from incompatible pointer type
eXosip.c: In function `eXosip_update_top_via':
eXosip.c:1464: warning: passing arg 1 of `osip_list_get' from incompatible pointer type
eXosip.c:1470: error: `OSIP_SYNTAXERROR' undeclared (first use in this function)
eXosip.c:1487: error: `OSIP_SUCCESS' undeclared (first use in this function)
make[2]: *** [eXosip.lo] Ошибка 1
make[2]: Leaving directory `/root/arm1/libeXosip2-3.5.0/src'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/root/arm1/libeXosip2-3.5.0'
make: *** [all] Ошибка 2
какова причина возникновения этих ошибок? Прошу у вас помощи.
Поставил libexosip2-4
Теперь при конфигурации linphone получаю уже
text
checking for eXosip2/eXosip.h... yes
checking for eXosip_subscribe_remove in -leXosip2... no
configure: error: Could not find eXosip2 library with version >= 3.0.2 !
Если я правильно понял, то libexosip2-4 > libexosip2-3.0.2, так почему же линфон не видит этого установленного пакета?
Поставил libexosip2-4
Теперь при конфигурации linphone получаю уже
text
checking for eXosip2/eXosip.h... yes
checking for eXosip_subscribe_remove in -leXosip2... no
configure: error: Could not find eXosip2 library with version >= 3.0.2 !
Если я правильно понял, то libexosip2-4 > libexosip2-3.0.2, так почему же линфон не видит этого установленного пакета?
Я добился того, что linphone сконфигурировался и теперь приступаю к компиляции:
text
# make
...
libtool: compile: arm-linux-gcc -DHAVE_CONFIG_H -I. -I.. -I../include/ -D_REENTRANT -I.. -g -O2 -Wall -Werror -DORTP_INET6 -MT b64.lo -MD -MP -MF .deps/b64.Tpo -c b64.c -fPIC -DPIC -o .libs/b64.o
b64.c: In function `b64_encode_':
b64.c:209: warning: comparison is always true due to limited range of data type
b64.c:210: warning: comparison is always true due to limited range of data type
b64.c:211: warning: comparison is always true due to limited range of data type
b64.c:212: warning: comparison is always true due to limited range of data type
make[5]: *** [b64.lo] Ошибка 1
make[5]: Leaving directory `/root/arm1/linphone-3.4.3/oRTP/src'
make[4]: *** [all-recursive] Ошибка 1
make[4]: Leaving directory `/root/arm1/linphone-3.4.3/oRTP/src'
make[3]: *** [all-recursive] Ошибка 1
make[3]: Leaving directory `/root/arm1/linphone-3.4.3/oRTP'
make[2]: *** [all] Ошибка 2
make[2]: Leaving directory `/root/arm1/linphone-3.4.3/oRTP'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/root/arm1/linphone-3.4.3'
make: *** [all] Ошибка 2