1

当我尝试通过命令行安装 xuggler 时,我收到错误消息,如何解决这个问题,下面给出的命令行,我在这里给出的输出不是完整的,只有最后几行,即启动后通过命令“ant run-tests”安装大约 15 分钟。

allbackHelper*, std::allocator<_Tp> = std::allocator<com::xuggle::ferry::JNIHelper::CallbackHelper*>]
 [exec] /usr/include/c++/4.6/bits/allocator.h:109:7: note:   no known conversion for argument 1 from ‘std::_List_base<com::xuggle::ferry::JNIHelper::CallbackHelper*, std::allocator<com::xuggle::ferry::JNIHelper::CallbackHelper*> >::_Tp_alloc_type {aka std::allocator<com::xuggle::ferry::JNIHelper::CallbackHelper*>}’ to ‘std::allocator<com::xuggle::ferry::JNIHelper::CallbackHelper*>&’
 [exec] /usr/include/c++/4.6/bits/allocator.h:107:7: note: std::allocator<_Tp>::allocator() [with _Tp = com::xuggle::ferry::JNIHelper::CallbackHelper*]
 [exec] /usr/include/c++/4.6/bits/allocator.h:107:7: note:   candidate expects 0 arguments, 1 provided
 [exec] In file included from /usr/include/c++/4.6/i686-linux-gnu/./bits/c++allocator.h:34:0,
 [exec]                  from /usr/include/c++/4.6/bits/allocator.h:48,
 [exec]                  from /usr/include/c++/4.6/list:62,
 [exec]                  from ../../../../../../../csrc/com/xuggle/ferry/JNIHelper.h:24,
 [exec]                  from ../../../../../../../csrc/com/xuggle/ferry/JNIHelper.cpp:21:
 [exec] /usr/include/c++/4.6/ext/new_allocator.h: In member function ‘void __gnu_cxx::new_allocator<_Tp>::construct(__gnu_cxx::new_allocator<_Tp>::pointer, _Tp&) [with _Tp = com::xuggle::ferry::JNIHelper::CallbackHelper*, __gnu_cxx::new_allocator<_Tp>::pointer = com::xuggle::ferry::JNIHelper::CallbackHelper**]’:
 [exec] /usr/include/c++/4.6/bits/stl_list.h:476:6:   instantiated from ‘std::list<_Tp, _Alloc>::_Node* std::list<_Tp, _Alloc>::_M_create_node(std::list<_Tp, _Alloc>::value_type&) [with _Tp = com::xuggle::ferry::JNIHelper::CallbackHelper*, _Alloc = std::allocator<com::xuggle::ferry::JNIHelper::CallbackHelper*>, std::list<_Tp, _Alloc>::_Node = std::_List_node<com::xuggle::ferry::JNIHelper::CallbackHelper*>, std::list<_Tp, _Alloc>::value_type = com::xuggle::ferry::JNIHelper::CallbackHelper*]’
 [exec] /usr/include/c++/4.6/bits/stl_list.h:1515:42:   instantiated from ‘void std::list<_Tp, _Alloc>::_M_insert(std::list<_Tp, _Alloc>::iterator, std::list<_Tp, _Alloc>::value_type&) [with _Tp = com::xuggle::ferry::JNIHelper::CallbackHelper*, _Alloc = std::allocator<com::xuggle::ferry::JNIHelper::CallbackHelper*>, std::list<_Tp, _Alloc>::iterator = std::_List_iterator<com::xuggle::ferry::JNIHelper::CallbackHelper*>, std::list<_Tp, _Alloc>::value_type = com::xuggle::ferry::JNIHelper::CallbackHelper*]’
 [exec] /usr/include/c++/4.6/bits/stl_list.h:988:9:   instantiated from ‘void std::list<_Tp, _Alloc>::push_back(std::list<_Tp, _Alloc>::value_type&) [with _Tp = com::xuggle::ferry::JNIHelper::CallbackHelper*, _Alloc = std::allocator<com::xuggle::ferry::JNIHelper::CallbackHelper*>, std::list<_Tp, _Alloc>::value_type = com::xuggle::ferry::JNIHelper::CallbackHelper*]’
 [exec] ../../../../../../../csrc/com/xuggle/ferry/JNIHelper.cpp:88:29:   instantiated from here
 [exec] /usr/include/c++/4.6/ext/new_allocator.h:108:9: error: no matching function for call to ‘operator new(unsigned int, void*)’
 [exec] /usr/include/c++/4.6/ext/new_allocator.h:108:9: note: candidate is:
 [exec] <built-in>:0:0: note: void* operator new(unsigned int)
 [exec] <built-in>:0:0: note:   candidate expects 1 argument, 2 provided
 [exec] make[5]: Leaving directory `/home/sajith/xuggle-xuggle-xuggler-dbd82d2/build/native/i686-pc-linux-gnu/csrc/com/xuggle/ferry'
 [exec] make[4]: Leaving directory `/home/sajith/xuggle-xuggle-xuggler-dbd82d2/build/native/i686-pc-linux-gnu/csrc/com/xuggle/ferry'
 [exec] make[3]: Leaving directory `/home/sajith/xuggle-xuggle-xuggler-dbd82d2/build/native/i686-pc-linux-gnu/csrc/com/xuggle'
 [exec] make[2]: Leaving directory `/home/sajith/xuggle-xuggle-xuggler-dbd82d2/build/native/i686-pc-linux-gnu/csrc/com'
 [exec] make[1]: Leaving directory `/home/sajith/xuggle-xuggle-xuggler-dbd82d2/build/native/i686-pc-linux-gnu/csrc'
 [exec] cc1plus: all warnings being treated as errors
 [exec] 
 [exec] make[5]: *** [JNIHelper.lo] 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

构建失败/home/sajith/xuggle-xuggle-xuggler-dbd82d2/mk/buildtools/buildhelper.xml:1149:执行返回:2

安装 15 分钟后显示上面的错误消息(作为命令 'ant run-tests' 的结果)

4

1 回答 1

0

我找到了解决此构建失败的解决方案:

[exec] cc1plus: all warnings being treated as errors

从谷歌研究我发现这是与您使用的 gcc 版本有关的问题。但是如果你想独立于 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:40:01.163 回答