Ubuntu 16.04 Ubuntu 16.04上的RedHawk构建失败

Ubuntu 16.04 Ubuntu 16.04上的RedHawk构建失败,ubuntu-16.04,redhawksdr,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 devi

我正试图在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)
make[2]:进入目录“/home/brassm1/workspace/draco/redhawk-src-2.0.3/redhawk/src/control/parser”
xsdcxx cxx解析器--根元素设备配置--类型映射内部/dcd.map--hxx suffix.h--cxx suffix.cpp--xml解析器expat--输出目录内部--生成验证.././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解析器--根元素domainmanagerconfiguration--类型map internal/dmd.map--hxx suffix.h--cxx suffix.cpp--xml解析器expat--output dir internal--生成验证.././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解析器--根元素devicepkg--hxx suffix.h--cxx suffix.cpp--xml解析器expat--output dir internal--生成验证.././xml/xsd/dpd.xsd
xsdcxx cxx解析器--根元素属性--类型map internal/prf.map--hxx suffix.h--cxx suffix.cpp--xml解析器expat--output dir internal--生成验证.././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解析器--根元素概要--hxx后缀.h--cxx后缀.cpp--xml解析器expat--输出目录内部--生成验证.././xml/xsd/profile.xsd
xsdcxx cxx解析器--根元素SoftwareSassembly--类型map internal/sad.map--hxx suffix.h--cxx suffix.cpp--xml解析器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解析器--根元素softwarecomponent--类型map internal/scd.map--hxx suffix.h--cxx suffix.cpp--xml解析器expat--output dir internal--生成验证.././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解析器--根元素softpkg--类型map internal/spd.map--hxx suffix.h--cxx suffix.cpp--xml解析器expat--output dir internal--生成验证.././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[3]:输入目录“/home/brassm1/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-domainmanager配置.lo
CXX libosieParser_la-ComponentDescriptor.lo
CXX libossieparser_la-softwaremassembly.lo
CXX libosieparser_la-componentProfile.lo
CXX libossier_la-devicemanager配置.lo
CXX内部/libossieparser_la-prf-pskel.lo
在/usr/include/xsd/cxx/parser/expat/elements.hxx:362:0中包含的文件中,
来自内部/sad pskel.h:114,
从内部/sad pimpl.h:30,
来自内部/sad解析器。h:27,
来自SoftwareSassembly.cpp:22:
/usr/include/xsd/cxx/parser/expat/elements.txx:在成员函数“bool xsd::cxx::parser::expat::document::parse(std::istream&,const std::uucx11::basic_string*,const std:uucx11::basic_string*,xsd::cxx::xml::error_handler&)”中:
/usr/include/xsd/cxx/parser/expat/elements.txx:282:22:错误:与“operator==”不匹配(操作数类型为“xsd::cxx::parser::expat::parser_auto_ptr”和“int”)
if(解析器==0)
^
在/usr/include/xsd/cxx/parser/xml schema.hxx:569:0中包含的文件中,
来自内部/sad pskel.h:109,
从内部/sad pimpl.h:30,
来自内部/sad解析器。h:27,
来自SoftwareSassembly.cpp:22:
/usr/include/xsd/cxx/parser/xml schema.txx:15:7:注:候选:模板bool xsd::cxx::parser::operator==(常量xsd::cxx::parser::string_sequence&,常量xsd::cxx::parser::string_sequence&)
运算符==(常量字符串序列&a、常量字符串序列&b)
^
/usr/include/xsd/cxx/parser/xml schema.txx:15:7:注意:模板参数推断/替换失败:
在/usr/include/xsd/cxx/parser/expat/elements.hxx:362:0中包含的文件中,
来自内部/sad pskel.h:114,
从内部/sad pimpl.h:30,
来自内部/sad解析器。h:27,
来自SoftwareSassembly.cpp:22:
/usr/include/xsd/cxx/parser/expat/elements.txx:282:25:注意:“xsd::cxx::parser::expat::parser_auto_ptr”不是从“const xsd::cxx::parser::string_sequence”派生的
if(解析器==0)
我按照说明下载了依赖项,但在更新repo时注意到一个错误:

E:获取失败 404找不到

E:有些索引文件下载失败。他们被忽视了,或者说已经过时了 用那些来代替


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

看起来这是expat中的一个bug,下面是一个为类似bug提供一些差异的示例

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

这就是当前expat的git回购协议的样子,它们有相同的修复方法

修复之后,框架应该编译

关于