Существуют ли конкретные шаги, которые можно предпринять для создания исходного кода 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:
Вот отформатированная версия моего ответа в опубликованном документе 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 также будут работать.
Особая благодарность этот блог за то, что указал мне правильное направление и дал мне большую часть того, что я подробно описал выше.