Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Настройка WebRTC Eclipce 4.3 ubuntu 13.10

Anna | 24.06.2014 | нет комментариев

Выкладываю небольшую шпаргалку по настройке WebRTC Eclipce 4.3 ubuntu 13.10. Это может быть пригодно тем, кто решил испробовать себя в написании кода на С для webrtc.

Скажу сразу, что у Google есть недурная документация для того, Дабы настроить среду программирования и начать пользоваться. Но к сожалению, у меня всякий раз уходит дюже много времени на установку каждого этого. Не всякий же день доводится устанавливать все по новому. Следственно решил поделиться навыком, может кому-то она поможет сэкономить пару суток. На ubuntu до версии 12.10 примерно неизменно все ставилось отлично и сразу начинало трудиться. Но незадолго вышла версия 13.10 и здесь начались еще крупные задачи. На установку гугл-кода пришлось потратить пол-дня. А что делать, тому кто только начал разбираться?

Приобретение кода

Выходит, начнем. Первым делом необходимо установить depot_tools

$ mkdir ~/webrtc
$ cd ~/webrtc
$ wget https://src.chromium.org/svn/trunk/tools/depot_tools.zip

Дальше распаковывем скаченный архив в данный же каталог. И сейчас нам необходимо прописать пути к этой папке:

$ export PATH="$PATH":/home/username/webrtc/depot_tools
$ export CHROMIUM_ROOT = /home/username/webrtc/ #Не знаю правда для чего, но у меня теперь так. Может и не необходимо

И заодно дабавляем тоже самое в свой .bashrc, Дабы позже перезагрузки переменные восстанавливались:

$ sudo nano ~/.bashrc

Добавляем те же самые строки. Безусловно же «username» необходимо заменить на свое имя пользователя:

export PATH="$PATH":/home/username/webrtc/depot_tools
export CHROMIUM_ROOT = /home/username/webrtc

Дальше проверяем все ли верно сделано:

$ gclient --version
gclient.py 0.7

Если правильно, то обязаны увидеть версию заказчика. Если нет, то скорее каждого не установлен python. Необходимо установить его.
Выходит, gclient заработал и сейчас необходимо скачать исходники. Возвращаемся в директорию webrtc и скачиваем:

$ gclient config http://webrtc.googlecode.com/svn/trunk
$ gclient sync --force

Скачиваться будет длинно. Позже того как закачалось, необходимо установить gyp:

$ sudo apt-get install gyp

Установили gyp, переходим к установке нужных требований для компиляции исходников. Для этого в скаченной нами ранне папке есть скрипт install-build-deps.sh. Запускаем его:

$ sudo ~/webrtc/trunk/build/install-build-deps.sh

И нам показывают неприятное сообщение: ERROR: Only Ubuntu 12.04 (precise) through 13.04 (raring) are currently supported. Не напасть, апгрейдим скрипт. Находим строку 55 приводим ее к такому виду:

ubuntu_versions="12\.04|12\.10|13\.04|13\.10"

Снова запускаем скрипт install-build-deps.sh. Начнется установка нужных программ и библиотек.
Сейчас находясь в директории ~/webrtc/ запускаем gclient с другими парамерами:

$ gclient runhooks --force

Если возникла оплошность:

File "<string>", line 1, in <module> AssertionError: Point $JAVA_HOME or the java_home gyp variable to a directory containing include/jni.h! gyp: Call to 'python -c "import os; dir=os.getenv('JAVA_HOME', '/usr/lib/jvm/java-6-sun'); assert os.path.exists(os.path.join(dir, 'include/jni.h')), 'Point \$JAVA_HOME or the java_home gyp variable to a directory containing include/jni.h!'; print dir"' returned exit status 1. 

То устанавливаем openjdk-6-jdk и прописываем пути:

$ sudo apt-get install openjdk-6-jdk 
$ sudo ln -s /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-sun
$ export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
$ echo "export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64" >> ~/.bashrc

На каждый случай добавляем, для того Дабы у нас сгенерировался Makefile:

$ echo "export GYP_GENERATORS=make" >> ~/.bashrc

Запускаем конечный раз

$ gclient sync --force
$ gclient runhooks --force

И убеждаемся, что был сделан Makefile в директории ~/webrtc/trunk/

Импорт в Eclipse и компиляция

Сейчас дозволено запускать Eclipse и импортировать план по этой инструкции: LinuxEclipseDev (Раздел «Install the C Development Tools (»CDT”)”)
Сейчас, когда сотворили план, пробуем его собрать.

Оплошность 1

У меня самая первая оплошность показала строки, содержащие:
narrowing conversion of ‘rate’ from ‘int’ to ‘uint32_t []
Для этого изменил файл webrtc/modules/rtp_rtcp/interface/rtp_payload_registry_unittest.cc, в нем функцию:

  ModuleRTPUtility::Payload* ExpectReturnOfTypicalAudioPayload(
      uint8_t payload_type, int rate)

на

  ModuleRTPUtility::Payload* ExpectReturnOfTypicalAudioPayload(
      uint8_t payload_type, uint32_t rate)
Оплошность 2

В следющей ошибке было:
... -Werror=extra ...
Файл /webrtc/trunk/webrtc/build/common.gypi у
Удалить строку 179

179:  '-Wextra',

Файл /webrtc/trunk/build/common.gypi
Строка 3875
Изменить

 3875:      'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES',    # -Werror

На

3875:	'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',    # -Werror

И чуть ниже строка 3882, удалить ее:

3882: '-Wextra',
Оплошность 3

Сообщение как бы этого:
/webrtc/talk/app/webrtc/java/jni/peerconnection_jni.cc:113:7: note: in definition of macro ‘CHECK’
Добавляем в файл /webrtc/talk/app/webrtc/java/jni/peerconnection_jni.cc:

#include <unistd.h>
Оплошность n

Дальше теснее не стал исправлять ошибки компилятора в unittest-ах гугла и вообще выклчил их компиляцию в файле webrtc/trunk/all.gyp.

#'talk/libjingle_tests.gyp:*',

В выводе, в папке /home/udaf/rabbit/webrtc/trunk/out/Debug/ возникли скомпилированные примеры, среди которых набольший интерес представляют: peerconnection_client и peerconnection_server

Коротко о Gyp

Гугл-код для компиляции использует gyp. В .gyp файлах дозволено руководить компиляцией приложений. Скажем дозволено подключить сторонние библиотеки к своему коду вот так:

		'cflags': [
			'-I/usr/local/include -I/usr/local/include/cppconn -fexceptions',
		],
		'link_settings': {
			'ldflags': [
				'<!@(pkg-config --libs gtk -2.0 gmodule-2.0 gthread-2.0 libavcodec libavformat libavutil libswscale)',
				'-lmysqlcppconn'
			],
			'libraries': [
		  		'-ldl',
		  		'-lmysqlcppconn'
			],
		},

Ссылки

Источник: programmingmaster.ru

Оставить комментарий
БАЗА ЗНАНИЙ
СЛУЧАЙНАЯ СТАТЬЯ
СЛУЧАЙНЫЙ БЛОГ
СЛУЧАЙНЫЙ МОД
СЛУЧАЙНЫЙ СКИН
НОВЫЕ МОДЫ
НОВЫЕ СКИНЫ
НАКОПЛЕННЫЙ ОПЫТ
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB