3

我没有找到 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 二进制文件吗?

4

3 回答 3

3

伙计们,

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

我将我的系统降级到 4.4 版,它工作正常。我本可以选择 4.6 或其他,但现在我想它不是必需的。

/阿尼尔。

于 2013-07-16T22:48:34.290 回答
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" * 

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

于 2014-02-12T14:45:05.213 回答
0

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

如果找不到 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 - 仍然不适合我

于 2014-09-11T12:39:07.573 回答