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

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

обновление

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

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

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

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

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

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

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

1 ответов


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

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

строительство Xuggle Xuggler (лицензионные версии GPL и LGPL)

[Linux 32-бит, Linux 64-бит, Windows 32-бит, Windows 64-бит]

для создания библиотеки 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-сервер-amd64.ИСО образы дисков. Это безголовые серверные версии Ubuntu. После установка ОС, выполните следующие действия, чтобы построить Xuggler (вы можете попробовать разные версии зависимостей и не использовать пользователя root, но это то, что я сделал, чтобы построить успешно):

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

sudo su

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

cd /root

Update 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

убедитесь, что точка доступа 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

Установить Пакет Config:

apt-get install pkg-config

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

apt-get install git

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

apt-get install ant-optional

установить Джунит:

apt-get install junit

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

apt-get install mingw-w64

загрузите исходный код xuggle, настроенный LGPL (вилка кода Эда из вилки Джеффа Уоллеса из исходного кода 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", чтобы удалить все скомпилированные файлы из предыдущей архитектуры. Чтобы построить run:

(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 (ссылка на arch будет разные на 32-битной VM):

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 (ссылка на arch будет отличаться на 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.

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