Ubuntu 16.04上的RedHawk构建失败

时间:2016-12-16 18:22:31

标签: ubuntu-16.04 redhawksdr

我试图在Ubuntu 16.04上构建RedHawkSdr CF.看起来这应该是一个相对简单的操作,但我不知道从哪里开始看这个问题。我相信我遵循了所有针对依赖项和环境变量的Ubuntu特定指令。

我收到此错误:

make[2]: Entering directory '/home/brasssm1/workspace/draco/redhawk-src-2.0.3/redhawk/src/control/parser'
xsdcxx cxx-parser --root-element deviceconfiguration --type-map internal/dcd.map --hxx-suffix .h --cxx-suffix .cpp --xml-parser expat --output-dir internal --generate-validation ../../xml/xsd/dcd.xsd; sed -i 's/ns == "urn:mil:jpeojtrs:sca:dcd"/ns.empty()/g' internal/dcd-pskel.cpp; sed -i 's/"urn:mil:jpeojtrs:sca:dcd"/""/g' internal/dcd-pskel.cpp 
xsdcxx cxx-parser --root-element domainmanagerconfiguration --type-map internal/dmd.map --hxx-suffix .h --cxx-suffix .cpp --xml-parser expat --output-dir internal --generate-validation ../../xml/xsd/dmd.xsd; sed -i 's/ns == "urn:mil:jpeojtrs:sca:dmd"/ns.empty()/g' internal/dmd-pskel.cpp; sed -i 's/"urn:mil:jpeojtrs:sca:dmd"/""/g' internal/dmd-pskel.cpp 
xsdcxx cxx-parser --root-element devicepkg --hxx-suffix .h --cxx-suffix .cpp --xml-parser expat --output-dir internal --generate-validation ../../xml/xsd/dpd.xsd
xsdcxx cxx-parser --root-element properties --type-map internal/prf.map --hxx-suffix .h --cxx-suffix .cpp --xml-parser expat --output-dir internal --generate-validation ../../xml/xsd/prf.xsd; sed -i 's/ns == "urn:mil:jpeojtrs:sca:prf"/ns.empty()/g' internal/prf-pskel.cpp; sed -i 's/"urn:mil:jpeojtrs:sca:prf"/""/g' internal/prf-pskel.cpp
xsdcxx cxx-parser --root-element profile --hxx-suffix .h --cxx-suffix .cpp --xml-parser expat --output-dir internal --generate-validation ../../xml/xsd/profile.xsd
xsdcxx cxx-parser --root-element softwareassembly --type-map internal/sad.map --hxx-suffix .h --cxx-suffix .cpp --xml-parser expat --output-dir internal --generate-validation ../../xml/xsd/sad.xsd; sed -i 's/ns == "urn:mil:jpeojtrs:sca:sad"/ns.empty()/g' internal/sad-pskel.cpp; sed -i 's/"urn:mil:jpeojtrs:sca:sad"/""/g' internal/sad-pskel.cpp
xsdcxx cxx-parser --root-element softwarecomponent --type-map internal/scd.map --hxx-suffix .h --cxx-suffix .cpp --xml-parser expat --output-dir internal --generate-validation ../../xml/xsd/scd.xsd; sed -i 's/ns == "urn:mil:jpeojtrs:sca:scd"/ns.empty()/g' internal/scd-pskel.cpp; sed -i 's/"urn:mil:jpeojtrs:sca:scd"/""/g' internal/scd-pskel.cpp
xsdcxx cxx-parser --root-element softpkg --type-map internal/spd.map --hxx-suffix .h --cxx-suffix .cpp --xml-parser expat --output-dir internal --generate-validation ../../xml/xsd/spd.xsd; sed -i 's/ns == "urn:mil:jpeojtrs:sca:spd"/ns.empty()/g' internal/spd-pskel.cpp; sed -i 's/"urn:mil:jpeojtrs:sca:spd"/""/g' internal/spd-pskel.cpp 
make  all-am
make[3]: Entering directory '/home/brasssm1/workspace/draco/redhawk-src-2.0.3/redhawk/src/control/parser'
  CXX      libossieparser_la-Properties.lo
  CXX      libossieparser_la-debug.lo
  CXX      libossieparser_la-SoftPkg.lo
  CXX      libossieparser_la-DomainManagerConfiguration.lo
  CXX      libossieparser_la-ComponentDescriptor.lo
  CXX      libossieparser_la-SoftwareAssembly.lo
  CXX      libossieparser_la-componentProfile.lo
  CXX      libossieparser_la-DeviceManagerConfiguration.lo
  CXX      internal/libossieparser_la-prf-pskel.lo
In file included from /usr/include/xsd/cxx/parser/expat/elements.hxx:362:0,
                 from internal/sad-pskel.h:114,
                 from internal/sad-pimpl.h:30,
                 from internal/sad-parser.h:27,
                 from SoftwareAssembly.cpp:22:
/usr/include/xsd/cxx/parser/expat/elements.txx: In member function ‘bool xsd::cxx::parser::expat::document<C>::parse(std::istream&, const std::__cxx11::basic_string<_CharT>*, const std::__cxx11::basic_string<_CharT>*, xsd::cxx::xml::error_handler<C>&)’:
/usr/include/xsd/cxx/parser/expat/elements.txx:282:22: error: no match for ‘operator==’ (operand types are ‘xsd::cxx::parser::expat::parser_auto_ptr’ and ‘int’)
           if (parser == 0)
                      ^
In file included from /usr/include/xsd/cxx/parser/xml-schema.hxx:569:0,
                 from internal/sad-pskel.h:109,
                 from internal/sad-pimpl.h:30,
                 from internal/sad-parser.h:27,
                 from SoftwareAssembly.cpp:22:
/usr/include/xsd/cxx/parser/xml-schema.txx:15:7: note: candidate: template<class C> bool xsd::cxx::parser::operator==(const xsd::cxx::parser::string_sequence<C>&, const xsd::cxx::parser::string_sequence<C>&)
       operator== (const string_sequence<C>& a, const string_sequence<C>& b)
       ^
/usr/include/xsd/cxx/parser/xml-schema.txx:15:7: note:   template argument deduction/substitution failed:
In file included from /usr/include/xsd/cxx/parser/expat/elements.hxx:362:0,
                 from internal/sad-pskel.h:114,
                 from internal/sad-pimpl.h:30,
                 from internal/sad-parser.h:27,
                 from SoftwareAssembly.cpp:22:
/usr/include/xsd/cxx/parser/expat/elements.txx:282:25: note:   ‘xsd::cxx::parser::expat::parser_auto_ptr’ is not derived from ‘const xsd::cxx::parser::string_sequence<C>’
           if (parser == 0)

我按照说明下载了依赖项,但是在更新repos时发现了一个错误:

  

E:无法获取   http://ppa.launchpad.net/redhawksdr/redhawk/ubuntu/dists/xenial/main/binary-amd64/Packages   找不到404

     

E:某些索引文件无法下载。他们被忽视或者老了   而是使用的。

我不确定这是否会导致任何问题。

1 个答案:

答案 0 :(得分:1)

看起来这是expat中的一个错误,这里是一个link,为类似的bug提供了一些差异。

您需要在elements.txx第282行中应用相同类型的修复,将parser == 0更改为parser.get() == 0

这是expat的git repo的当前HEAD看起来像他们有相同的修复

在进行修复之后,框架应该编译。

关于404错误,在该ppa中只有Trusty(14.04)的软件包。你可以看到here。在大多数情况下,16.04的默认存储库中提供的omniEvents包应该可以正常工作。