当我尝试通过命令行安装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:exec返回:2
安装15分钟后显示上面的错误信息(作为命令'ant run-tests'的结果)
答案 0 :(得分: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" *
他们应该给你相同的文件列表。