2014-04-18 64 views
7

我可以从Windows 32位,Windows 64位,Linux 32位和Linux 64位构建Xuggle Xuggler源代码的具体步骤是什么?我在多个系统上尝试过多次,并且不断收到很多不同的错误。我该如何构建Xuggle Xuggler的GPL和LGPL版本?

更新

我花了好几天试图让Xuggle Xuggler编译(和 交叉编译)。我成功解决了编译原始GPL 版本的代码和LGPL版本。我以为我会发布一个 回答我自己的问题堆栈溢出分享我的知识。

更新上树莓派

我也能够建立并在树莓派运行Xuggler遵循以下这些相同的基本说明。我刚刚使用了我在LG Github上维护的代码的LGPL版本 ,并对Pi进行了修改。我可以在我的Radxa Rock(另一个ARM设备)上使用已编译的JAR文件和二进制文件。如果你是在建立在郫县有兴趣 ,你可以用我的PI分支:

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

如果你是懒惰的,只是想为PI/ARM预编译的.jar文件:

GPL Version (supports H.264)

LGPL Version (no H.264 support)

+0

请通过像GoogleDocs等文件共享服务共享树莓pi的xuggler的编译的二进制文件,这将是一个巨大的帮助从你身边。 –

+1

你可以下载我在Raspberry Pi上构建的“Magic Xuggler Jar”,并在几个ARM设备上使用:http://goo.gl/9PHwKh – 11101101b

+0

@ 11101101b - 这个帖子也是相关的,如果我需要构建java(jar)版本? – Elist

回答

12

Here is a formatted version of my answer in a published Google Document

出于完整性(在情况下,链接去死一天),这里是-很好的格式较少的文本:

大厦Xuggle Xuggler(GPL和LGPL许可版本)

[Linux的32 64位,Windows 32位,Windows 64位]

要构建Xuggle Xuggler库,您需要两个运行Ubuntu 11.10(32位和64位操作系统)的Linux虚拟机, 。构建Linux 32位,交叉编译Windows 32位和交叉编译Windows 64位二进制文​​件需要32位版本的操作系统。构建Linux 64位二进制文​​件需要64位版本的操作系统。

使用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和所有其他的build essentials:

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源代码(来自原始GPL xuggle代码的Jeff Wallace's fork代码的Ed代码)或原始GPL版本:

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

编译并构建JAR文件(里面带有二进制文件)。确保在64位版本的Ubuntu上运行64位Linux版本。另外请注意,在构建之间,您需要运行“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位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(具体拱链路将是在32位VM不同):

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编译版本运行的任何地方工作。

特别感谢this blog为我指出了正确的方向,并给了我上面详述的大部分。