Как я могу собрать версию Xuggle Xuggler для GPL и LGPL?

Существуют ли конкретные шаги, которые можно предпринять для создания исходного кода Xuggle Xuggler из 32-разрядной версии Windows, 64-разрядной версии Windows, 32-разрядной версии Linux и 64-разрядной версии Linux? Я пробовал несколько раз на нескольких системах и продолжаю получать много разных ошибок.

Обновить

Я провел несколько дней, пытаясь заставить Xuggle Xuggler скомпилировать (и
кросс-компиляции). Я успешно взялся за компиляцию как оригинального GPL
версия кода и версия LGPL. Я думал, что выложу
ответьте на мой собственный вопрос о переполнении стека, чтобы поделиться своими знаниями.

Обновление на Raspberry Pi

Я также смог собрать и запустить Xuggler на Raspberry Pi, следуя приведенным ниже инструкциям. Я просто использовал
моя версия LGPL кода, которую я поддерживаю на Github, и внесла изменения для Pi. Я также могу использовать скомпилированный файл JAR и двоичные файлы на моем Radxa Rock (другом устройстве ARM). Если вы заинтересованы
в сборке на пи, вы можете использовать мою ветку пи:

https://github.com/e-d/xuggle-xuggler

Если вы ленивы и просто хотите предварительно скомпилированные файлы .jar для Pi / ARM:

Версия GPL (поддерживает H.264)

Версия LGPL (без поддержки H.264)

7

Решение

Вот отформатированная версия моего ответа в опубликованном документе Google.

Для полноты (и в случае, если ссылка однажды прекратит работу), вот текст, отформатированный менее красиво:

Сборка Xuggle Xuggler (Лицензионные версии GPL и LGPL)

[Linux 32-bit, Linux 64-bit, Windows 32-bit, Windows 64-bit]

Чтобы собрать библиотеку Xuggle Xuggler, вам понадобятся две виртуальные машины Linux с Ubuntu 11.10 (32-битные и 64-битные операционные системы). 32-разрядная версия ОС требуется для сборки 32-разрядной версии Linux, кросс-компиляции 32-разрядной версии Windows и кросс-компиляции 64-разрядных версий Windows. 64-разрядная версия ОС необходима для сборки 64-разрядных двоичных файлов Linux.

Используя VirtualBox, я создал две виртуальные машины, описанные выше, с образами дисков ubuntu-11.10-server-i386.iso и ubuntu-11.10-server-amd64.iso. Это безголовые серверные версии Ubuntu. После установки ОС выполните следующие шаги для сборки Xuggler (вы можете попробовать разные версии зависимостей и не использовать пользователя root, но это то, что я сделал для успешной сборки):

Изменить на пользователя root:

sudo su

Просто используйте домашний каталог root:

cd /root

Обновите apt-get для использования определенного репозитория:

apt-get install python-software-properties
add-apt-repository ppa:ferramroberto/java
apt-get update

Установите Java:

apt-get install sun-java6-jdk sun-java6-plugin

Убедитесь, что HotSpot Java 6 JVM является Java по умолчанию:

java -version

Если появляется неверная версия Java, настройте значение по умолчанию, выполнив:

update-alternatives --config java

Установите gcc, g ++, make и все остальные необходимые компоненты сборки:

apt-get install build-essential

Установите YASM:

apt-get install yasm

Установите Open SSL:

apt-get install openssl

Установить пакет конфигурации:

apt-get install pkg-config

Установите Git:

apt-get install git

Установите Ant:

apt-get install ant-optional

Установите JUnit:

apt-get install junit

Установите MingGW, чтобы иметь возможность собирать для Windows (mingw-w64 может делать 32- и 64-разрядные версии Windows):

apt-get install mingw-w64

Загрузите настроенный LGPL исходный код Xuggle (форк кода Эда из форка Джеффа Уоллеса из исходного кода xuggle GPL) или оригинальную версию GPL:

LGPL: git clone https://github.com/e-d/xuggle-xuggler.git
GPL: git clone https://github.com/xuggle/xuggle-xuggler.git

Скомпилируйте и соберите файлы JAR (с двоичными файлами внутри). Обязательно запустите 64-битную сборку Linux на 64-битной версии Ubuntu. Также обратите внимание, что между сборками вам нужно будет запустить «ant clobber», чтобы удалить все скомпилированные файлы из предыдущей архитектуры. Чтобы построить запустить:

(32/64-bit Linux): ant stage
(64-bit Windows): ant -Dbuild.configure.os=x86_64-w64-mingw32 stage
(32-bit Windows): ant -Dbuild.configure.os=i686-w64-mingw32 stage

Файлы JAR будут находиться в каталоге / dist / lib.

Если вам нужны бинарные файлы Linux для дополнительной работы на CentOS, вам теперь нужно изменить версию GCC и G ++, чтобы использовать 3.4 вместо 3.6.

Установите GCC 4.4:

apt-get install gcc-4.4

Обновите символические ссылки для использования 4.4 (специфичная для арки ссылка будет отличаться на 32-битной ВМ):

rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
rm /usr/bin/x86_64-linux-gnu-gcc
ln -s /usr/bin/x86_64-linux-gnu-gcc-4.4 /usr/bin/x86_64-linux-gnu-gcc

Установите C ++ (G ++) 4.4:

apt-get install c++-4.4

Обновите символические ссылки для использования 4.4 (специфичная для арки ссылка будет отличаться на 32-битной ВМ):

rm /usr/bin/cpp
ln -s /usr/bin/cpp-4.4 /usr/bin/cpp
rm /usr/bin/x86_64-linux-gnu-cpp
ln -s /usr/bin/x86_64-linux-gnu-cpp-4.4 /usr/bin/x86_64-linux-gnu-cpp
rm /usr/bin/g++
ln -s /usr/bin/g++-4.4 /usr/bin/g++
rm /usr/bin/x86_64-linux-gnu-g++
ln -s /usr/bin/x86_64-linux-gnu-g++-4.4 /usr/bin/x86_64-linux-gnu-g++

Проверьте версии по умолчанию:

gcc --version
c++ --version
cpp --version
gcc --version

Теперь вы можете запускать сборки так же, как и раньше (вам нужно только пересобрать бинарные файлы Linux). Двоичные файлы теперь будут совместимы с более старыми версиями многих дистрибутивов Linux (включая совместимость с CentOS). Эти скомпилированные двоичные файлы 4.4 должны работать везде, где скомпилированные версии 4.6 также будут работать.

Особая благодарность этот блог за то, что указал мне правильное направление и дал мне большую часть того, что я подробно описал выше.

12

Другие решения


По вопросам рекламы [email protected]