Xuggler编译失败。

时间:2013-07-10 02:57:11

标签: xuggler xuggle

我没有找到WINDOWS或LINUX平台的预先存在的二进制文件,我正在尝试构建从github克隆的Xuggler代码库。我按照链接中给出的步骤进行操作:http://www.xuggle.com/xuggler/build

我面临编译错误,如下所示。有人可以帮我解决缺少的问题吗?所有构建环境先决条件都得到了解决。

     [exec]   CXX    AudioResampler.lo
     [exec]   CXX    AudioSamples.lo
     [exec]   CXX    Codec.lo
     [exec] ../../../../../../../csrc/com/xuggle/xuggler/Codec.cpp: In member function 'virtual bool com::xuggle::xuggler::Codec::canDecode()':
     [exec] ../../../../../../../csrc/com/xuggle/xuggler/Codec.cpp:158:38: error: converting 'false' to pointer type 'int (*)(AVCodecContext*, void*, int*, AVPacket*)' [-Werror=conversion-null]
     [exec] ../../../../../../../csrc/com/xuggle/xuggler/Codec.cpp: At global scope:
     [exec] ../../../../../../../csrc/com/xuggle/xuggler/Codec.cpp:26:1: error: 'vs_logger_static_context' defined but not used [-Werror=unused-variable]
     [exec] cc1plus: all warnings being treated as errors
     [exec] make[6]: *** [Codec.lo] Error 1
     [exec] make[5]: *** [all-recursive] Error 1
     [exec] make[4]: *** [all] Error 2
     [exec] make[3]: *** [all-recursive] Error 1
     [exec] make[2]: *** [all-recursive] Error 1
     [exec] make[1]: *** [all-recursive] Error 1
     [exec] make: *** [all-recursive] Error 1
     [exec] make[6]: Leaving directory `/home/anilj1/xuggle-xuggler/build/native/x86_64-unknown-linux-gnu/csrc/com/xuggle/xuggler'
     [exec] make[5]: Leaving directory `/home/anilj1/xuggle-xuggler/build/native/x86_64-unknown-linux-gnu/csrc/com/xuggle/xuggler'
     [exec] make[4]: Leaving directory `/home/anilj1/xuggle-xuggler/build/native/x86_64-unknown-linux-gnu/csrc/com/xuggle/xuggler'
     [exec] make[3]: Leaving directory `/home/anilj1/xuggle-xuggler/build/native/x86_64-unknown-linux-gnu/csrc/com/xuggle'
     [exec] make[2]: Leaving directory `/home/anilj1/xuggle-xuggler/build/native/x86_64-unknown-linux-gnu/csrc/com'
     [exec] make[1]: Leaving directory `/home/anilj1/xuggle-xuggler/build/native/x86_64-unknown-linux-gnu/csrc'

BUILD FAILED
/home/anilj1/xuggle-xuggler/mk/buildtools/buildhelper.xml:1192: exec returned: 2

Total time: 18 minutes 30 seconds

是否有人可以帮助在哪里找到适用于WINDOWS的预先制作的XUGGLER BINARIES?

3 个答案:

答案 0 :(得分:3)

民间,

所以最后我能够成功构建Xuggler构建。这是一个编译器版本问题。我安装了(凭借apt-get install build-essential)最新版本的gcc(版本4.7),它抛出了以下所有错误。

我将我的系统降级到4.4版本,它运行良好。我可以选择4.6或其他东西,但现在我猜它不是必需的。

/阿尼尔。

答案 1 :(得分:3)

我找到了另一种解决方案来修复此构建失败:

[exec] cc1plus: all warnings being treated as errors

如果你想独立于gcc版本修复它(你不能在某些Linux发行版中选择gcc版本),请转到xuggle下载/解压缩文件夹并使用:

grep -rl "Werror" * | xargs sed -i 's/Werror/Wno-error/g'

这将强制编译器将警告视为警告而非错误,构建将成功。


注意:如果要确保此命令生效,请在命令使用前执行:

grep -rl "Werror" * 

命令使用后:

grep -rl "Wno-error" * 

他们应该给你相同的文件列表。

答案 2 :(得分:0)

安装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位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

如果找不到c ++,请安装g ++ 4.4

apt-get install g++-4.4

我可以在Ubuntu 14.0.4 LTS 64上构建一个LGPL linux jar

以下是完整指南:https://docs.google.com/document/d/1mjlI2jAGKK3_W4KIBjpUfM3F_SJjUkZhQJuwtIBn_7I/pub

如果构建失败,请记得安装g ++

// windows build - 仍然不适合我