|
linphone. ARM., Кросскомпиляция. |
|
|
|
Apr 5 2011, 04:57
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
Добрый день, возникла следующая проблема: при попытке скомпилировать linphone на машине с i686 для машины с ARM-архитектурой: Код $cd linphone-3.4.3 $sudo ./configure --prefix=/home/user/armbuild --host=i686-pc-linux --target=arm-linux --disable-static --disable-glib --enable-gnome_ui=no --disable-manual --enable-alsa --with-speex=/home/user/speex Конфигурация проходит успешно, но в конце получаю предупреждение: Цитата 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 и получаю ошибку: Код 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 Собственно это и вызывает затруднение, откуда такая ошибка и как можно от нее избавиться? Заранее благодарен.
|
|
|
|
|
Apr 5 2011, 08:22
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
Petka, спасибо за ответ, ранее я скачивал speex отсюда и собирал следующим образом: Код $cd ../speex-1.1.11.1 $./configure --prefix=/home/user/armbuild --host=i686-pc-linux --target=arm-linux --disable-static --enable-fixed-point --enable-arm-asm $make $make install Сейчас я поставил пакеты: libogg-ocaml, libogg-ocaml-dev, libspeex-ocaml, libspeex-ocaml-dev, libspeexdsp-dev из репозитариев - проблема решилась. Большое спасибо.
|
|
|
|
|
Apr 6 2011, 11:27
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
появилась еще одна проблема: при компиляции speex получаю следующее сообщение Код root@debian:/home/user/arm1/speex-1.2beta2# make make all-recursive make[1]: Entering directory `/home/user/arm1/speex-1.2beta2' Making all in libspeex make[2]: Entering directory `/home/user/arm1/speex-1.2beta2/libspeex' /bin/bash ../libtool --mode=link arm-unknown-linux-uclibcgnueabi-gcc -g -O2 -o testenc testenc.o libspeex.la -lm arm-unknown-linux-uclibcgnueabi-gcc -g -O2 -o .libs/testenc testenc.o ./.libs/libspeex.so -lm testenc.o: In function `fprintf': /usr/include/bits/stdio2.h:98: undefined reference to `__fprintf_chk' /usr/include/bits/stdio2.h:98: undefined reference to `__fprintf_chk' /usr/include/bits/stdio2.h:98: undefined reference to `__fprintf_chk' ./.libs/libspeex.so: undefined reference to `__printf_chk' collect2: ld returned 1 exit status make[2]: *** [testenc] Ошибка 1 make[2]: Leaving directory `/home/user/arm1/speex-1.2beta2/libspeex' make[1]: *** [all-recursive] Ошибка 1 make[1]: Leaving directory `/home/user/arm1/speex-1.2beta2' make: *** [all] Ошибка 2 гугл ничего про это не знает уважаемые, помогите разобраться.
Сообщение отредактировал jacuba - Apr 6 2011, 11:28
|
|
|
|
|
Apr 7 2011, 06:01
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
Проблема решилась путем установки компилятора в /usr Теперь при попытки конфигурирования самого libphone получаю сообщение: Код # ./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static \ --disable-glib --with-osip=$ARM_INSTALL_TREE/usr \ --with-readline=$ARM_INSTALL_TREE/usr \ SPEEX_CFLAGS="-I$ARM_INSTALL_TREE/usr/include" \ SPEEX_LIBS="-L$ARM_INSTALL_TREE/usr/lib -lspeex "
... 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. Скачиваю и распаковываю. Код # 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 какова причина возникновения этих ошибок? Прошу у вас помощи.
Сообщение отредактировал jacuba - Apr 7 2011, 06:03
|
|
|
|
|
Apr 7 2011, 06:41
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(jacuba @ Apr 7 2011, 10:01)  Проблема решилась путем установки компилятора в /usr Теперь при попытки конфигурирования самого libphone получаю сообщение: Код # ./configure --prefix=/usr .... какова причина возникновения этих ошибок? Прошу у вас помощи. 1) ИМХО --prefix НЕ надо при кросс-компиляции прописывать в /usr пропишите куда-нить в личный /home аналогично ARM_INSTALL_TREE 2) при компиляции (make) не выдавались-ли сообщения о ненайденых incude ?
|
|
|
|
|
Apr 7 2011, 07:32
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
кхм... Наверно вот здесь и таится ошибка. Но я все равно не понимаю, как это исправить. Код ... In file included from eXosip.c:25: eXosip2.h:56:24: osip2/osip.h: Нет такого файла или каталога eXosip2.h:57:31: osip2/osip_dialog.h: Нет такого файла или каталога In file included from ../include/eXosip2/eXosip.h:28, from eXosip2.h:59, from eXosip.c:25: ../include/eXosip2/eX_setup.h:29:38: osipparser2/osip_message.h: Нет такого файла или каталога In file included from ../include/eXosip2/eXosip.h:28, from eXosip2.h:59, from eXosip.c:25: ../include/eXosip2/eX_setup.h:107: error: parse error before "osip_proxy_authenticate_t" ../include/eXosip2/eX_setup.h:107: warning: no semicolon at end of struct or union ../include/eXosip2/eX_setup.h:111: error: parse error before '}' token ../include/eXosip2/eX_setup.h:200: error: parse error before '*' token ../include/eXosip2/eX_setup.h:269: error: parse error before '*' token In file included from ../include/eXosip2/eXosip.h:29, from eXosip2.h:59, from eXosip.c:25: ../include/eXosip2/eX_register.h:28:37: osipparser2/osip_parser.h: Нет такого файла или каталога In file included from ../include/eXosip2/eXosip.h:29, from eXosip2.h:59, from eXosip.c:25: ...
|
|
|
|
|
Apr 7 2011, 08:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886

|
Цитата(jacuba @ Apr 7 2011, 11:32)  кхм... Наверно вот здесь и таится ошибка. Но я все равно не понимаю, как это исправить. Код ... In file included from eXosip.c:25: eXosip2.h:56:24: osip2/osip.h: Нет такого файла или каталога ... Посмотрите с какими ключами зачускается компилятор перед выдачей таких ошибок. В ключе "-I" должны содержаться пути к необходимым хедерам. Проверьте наличие этих хедеров. Сконфигурируйте библиотеку так, что бы при компиляции эти пути указывали на необходимые каталоги.
|
|
|
|
|
Apr 11 2011, 09:51
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
При конфигурации самого linphon получаю сообщение: Код # ./configure --prefix=/root/armbuild --host=arm-linux --disable-static --disable-glib --enable-gnome_ui=no --disable-manual --enable-ipv6 --enable-alsa --with-osip=/armbuild/usr --with-speex=/armbuild/usr
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-3.0.3 Прошу меня проверить: Код # cd libeXosip2-3.0.3 # ./configure --host=arm-linux --prefix=/armbuild ... Entering directory `/home/user/Загрузки/libeXosip2-3.0.3/src' if /bin/bash ../libtool --tag=CC --mode=compile arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I/armbuild/include -Wall -Wcast-align -Wchar-subscripts -Wformat -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -DOSIP_MT -DENABLE_DEBUG -g -DENABLE_TRACE -g -pthread -g -MT eXosip.lo -MD -MP -MF ".deps/eXosip.Tpo" -c -o eXosip.lo eXosip.c; \ then mv -f ".deps/eXosip.Tpo" ".deps/eXosip.Plo"; else rm -f ".deps/eXosip.Tpo"; exit 1; fi mkdir .libs arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I/armbuild/include -Wall -Wcast-align -Wchar-subscripts -Wformat -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -DOSIP_MT -DENABLE_DEBUG -g -DENABLE_TRACE -g -pthread -g -MT eXosip.lo -MD -MP -MF .deps/eXosip.Tpo -c eXosip.c -fPIC -DPIC -o .libs/eXosip.o In file included from eXosip.c:25: eXosip2.h:56:24: osip2/osip.h: No such file or directory eXosip2.h:57:31: osip2/osip_dialog.h: No such file or directory osip2/osip.h лежал в /armbuild/include, на всякий случай я скопировал всю папку osip2 в /usr/include Правильно ли я сделал? по прежнему получаю кучу сообщений типа: Код eXosip.c: In function `_eXosip_transaction_init': eXosip.c:83: warning: implicit declaration of function `osip_transaction_init' eXosip.c:83: error: `transaction' undeclared (first use in this function) eXosip.c:83: error: (Each undeclared identifier is reported only once eXosip.c:83: error: for each function it appears in.) eXosip.c:83: error: `ctx_type' undeclared (first use in this function) eXosip.c:83: error: `osip' undeclared (first use in this function) eXosip.c:83: error: `message' undeclared (first use in this function) eXosip.c: At top level: eXosip.c:101: error: parse error before "osip_transaction_t" eXosip.c:102: warning: no previous prototype for `eXosip_transaction_find' eXosip.c: In function `eXosip_transaction_find': eXosip.c:105: error: `transaction' undeclared (first use in this function) eXosip.c:106: warning: implicit declaration of function `osip_list_eol' eXosip.c:106: error: invalid use of incomplete typedef `eXosip_t' eXosip.c:108: error: `osip_transaction_t' undeclared (first use in this function) eXosip.c:108: error: `tr' undeclared (first use in this function) eXosip.c:110: error: parse error before ')' token eXosip.c: At top level: eXosip.c:124: error: parse error before "osip_transaction_t" eXosip.c: In function `_eXosip_retry_with_auth': eXosip.c:127: error: `osip_transaction_t' undeclared (first use in this function) eXosip.c:127: error: `out_tr' undeclared (first use in this function) eXosip.c:128: error: `tr' undeclared (first use in this function) eXosip.c:129: error: `osip_message_t' undeclared (first use in this function) eXosip.c:129: error: `msg' undeclared (first use in this function) eXosip.c:130: error: `osip_event_t' undeclared (first use in this function) eXosip.c:130: error: `sipevent' undeclared (first use in this function) eXosip.c:134: error: `osip_via_t' undeclared (first use in this function) eXosip.c:134: error: `via' undeclared (first use in this function) eXosip.c:137: error: `ptr' undeclared (first use in this function) eXosip.c:140: error: `jd' undeclared (first use in this function) eXosip.c:152: error: `retry' undeclared (first use in this function) eXosip.c:155: warning: implicit declaration of function `osip_message_clone' eXosip.c:158: warning: implicit declaration of function `OSIP_TRACE' ... eXosip.c:474: error: `osip_transaction_t' undeclared (first use in this function) eXosip.c:474: error: `out_tr' undeclared (first use in this function) eXosip.c:476: warning: implicit declaration of function `osip_list_get' eXosip.c:476: error: dereferencing pointer to incomplete type eXosip.c:478: error: dereferencing pointer to incomplete type eXosip.c:480: error: dereferencing pointer to incomplete type eXosip.c:482: error: dereferencing pointer to incomplete type eXosip.c:492: error: `OSIP_ERROR' undeclared (first use in this function) eXosip.c:500: error: invalid use of incomplete typedef `eXosip_t' eXosip.c:500: error: dereferencing pointer to incomplete type ... eXosip.c:1138: error: dereferencing pointer to incomplete type eXosip.c:1143: error: dereferencing pointer to incomplete type eXosip.c:1144: error: dereferencing pointer to incomplete type eXosip.c:1164: warning: implicit declaration of function `osip_message_get_www_authenticate' eXosip.c:1165: warning: implicit declaration of function `osip_message_get_proxy_authenticate' eXosip.c:1218: error: `osip_generic_param_t' undeclared (first use in this function) eXosip.c:1218: error: `to_tag' undeclared (first use in this function) eXosip.c:1219: warning: implicit declaration of function `osip_from_param_get_byname' eXosip.c:1248: error: `OSIP_INFO1' undeclared (first use in this function) eXosip.c: At top level: eXosip.c:1297: error: parse error before '*' token eXosip.c:1298: warning: no previous prototype for `eXosip_update_top_via' eXosip.c: In function `eXosip_update_top_via': eXosip.c:1301: error: `osip_generic_param_t' undeclared (first use in this function) eXosip.c:1301: error: `br' undeclared (first use in this function) eXosip.c:1302: error: `osip_via_t' undeclared (first use in this function) eXosip.c:1302: error: `via' undeclared (first use in this function) eXosip.c:1302: error: parse error before ')' token eXosip.c:1307: error: `OSIP_ERROR' undeclared (first use in this function) eXosip.c:1312: warning: implicit declaration of function `osip_via_param_get_byname' eXosip.c:1323: warning: implicit declaration of function `osip_build_random_number' eXosip.c:1326: warning: implicit declaration of function `osip_strdup'
Сообщение отредактировал jacuba - Apr 11 2011, 09:55
|
|
|
|
|
Apr 12 2011, 04:47
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
Да, armbuild лежит прямо в корне. Только что проверил все пути установки, понял, что хидеры linphone искал не там - поправил - частично помогло. Спасибо, Petka, ты единственный, кто проявляет интерес к этой теме на этом форуме
|
|
|
|
|
Apr 12 2011, 06:25
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
Я добился того, что linphone сконфигурировался и теперь приступаю к компиляции: Код # 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 В какую сторону копать?
|
|
|
|
|
Apr 12 2011, 11:02
|
Участник

Группа: Участник
Сообщений: 26
Регистрация: 25-03-11
Из: Пермь
Пользователь №: 63 861

|
Я открыл файл b64.c и закоментировал строки 209-212. Данная проблема решилась. Спасибо.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|