C++ 如何构建Xuggle Xuggler的GPL和LGPL版本?

C++ 如何构建Xuggle Xuggler的GPL和LGPL版本?,c++,gcc,cross-compiling,xuggler,xuggle,C++,Gcc,Cross Compiling,Xuggler,Xuggle,我是否可以采取具体步骤从Windows 32位、Windows 64位、Linux 32位和Linux 64位构建Xuggle Xuggler源代码?我在多个系统上尝试了多次,不断地得到许多不同的错误 更新 我花了几天时间试图让XuggleXuggler编译(和 交叉编译)。我成功地解决了编译原始GPL和 代码的版本和LGPL版本。我想我应该发布一个 回答我自己关于堆栈溢出的问题,分享我的知识 树莓皮的更新 我还能够按照下面相同的基本说明在Raspberry Pi上构建和运行Xuggler。我刚

我是否可以采取具体步骤从Windows 32位、Windows 64位、Linux 32位和Linux 64位构建Xuggle Xuggler源代码?我在多个系统上尝试了多次,不断地得到许多不同的错误

更新

我花了几天时间试图让XuggleXuggler编译(和 交叉编译)。我成功地解决了编译原始GPL和 代码的版本和LGPL版本。我想我应该发布一个 回答我自己关于堆栈溢出的问题,分享我的知识

树莓皮的更新

我还能够按照下面相同的基本说明在Raspberry Pi上构建和运行Xuggler。我刚用过 我在Github上维护的LGPL版本的代码,并对Pi进行了修改。我也可以在我的Radxa Rock(另一个ARM设备)上使用编译好的JAR文件和二进制文件。如果你感兴趣的话 在构建Pi时,可以使用我的Pi分支:

如果您很懒,只需要Pi/ARM的预编译.jar文件:

为了完整性(万一有一天链接失效),这里有一些格式不太好的文本:

构建Xuggle Xuggler(GPL和LGPL许可版本)

[Linux 32位、Linux 64位、Windows 32位、Windows 64位]

要构建Xuggle Xuggler库,您需要两台运行Ubuntu11.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用户,但这是我成功构建的步骤):

更改为根用户:

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
验证热点Java 6 JVM是否为默认Java:

java -version
如果出现不正确的Java版本,请通过运行以下命令配置默认值:

update-alternatives --config java
安装gcc、g++、make和所有其他构建要素:

apt-get install build-essential
安装YASM:

apt-get install yasm
安装开放式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):

下载LGPL配置的Xuggle源代码(Ed的代码分支来自Jeff Wallace的代码分支来自原始GPL Xuggle代码)或原始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上,特定于arch的链接将不同):

安装C++(G++)4.4:

更新符号链接以使用4.4(在32位VM上,特定于arch的链接将不同):

验证默认版本:

gcc --version
c++ --version
cpp --version
gcc --version
您现在可以像以前一样运行构建(您只需要重新构建Linux二进制文件)。二进制文件现在将与许多Linux发行版的稍旧版本兼容(包括CentOS兼容性)。这些4.4编译的二进制文件应该仍然可以在4.6编译版本运行的任何地方工作


特别感谢您为我指明了正确的方向,并为我提供了上面详细介绍的大部分内容。

请通过一些文件共享服务(如Google Docs等)共享xuggler for Raspberry pi的编译二进制文件,这将是您方的巨大帮助。您可以下载我称之为“神奇xuggler Jar”的内容我在Raspberry Pi上构建并在这里的几个ARM设备上使用过:@11101101b-如果我需要构建java(jar)版本,这篇文章是否也相关?是的。构建jar是我们的目标。困难在于jar中依赖于系统的二进制文件。
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
apt-get install c++-4.4
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