首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能使用基于qnx7.0的qcc为libboost_filesystem.a构建boost_1.68.0

不能使用基于qnx7.0的qcc为libboost_filesystem.a构建boost_1.68.0
EN

Stack Overflow用户
提问于 2018-09-11 21:27:00
回答 1查看 805关注 0票数 1

使用下列选项

  1. ./bootstrap.sh--与-工具集=qcc
  2. b2 toolset=qcc target-os=qnxnto threadapi=pthread link=static -l240 --layout=system --无python cxxflags="-Vgcc_ntoarmv7le -Y_gpp -Wc,-std=gnu++0x -D_LITTLE_ENDIAN“-Vgcc_ntoarmv7le -Y_gpp -lang++”-j7“

看到以下错误

代码语言:javascript
复制
qcc.compile.c++ bin.v2\libs\filesystem\build\qcc\release\link-static\operations.o libs\filesystem\src\operations.cpp: In function 'void boost::filesystem::detail::permissions(const boost::filesystem::path&, boost::filesystem::perms, boost::system::error_code*)': libs\filesystem\src\operations.cpp:1486:11: error: '::fchmodat' has not been declared
       if (::fchmodat(AT_FDCWD, p.c_str(), mode_cast(prms),
           ^ cc: C:/Users/bilahari.akkiraju/qnx700/host/win64/x86_64/usr/lib/gcc/arm-unknown-nto-qnx7.0.0eabi/5.4.0/cc1plus caught signal 1
    "QCC" -Wc,-ftemplate-depth-128 -Vgcc_ntoarmv7le -Y_gpp -Wc,-std=gnu++0x -D_LITTLE_ENDIAN -O3 -Wc,-finline-functions -Wc,-Wno-inline -DBOOST_ALL_NO_LIB=1 -DBOOST_FILESYSTEM_STATIC_LINK=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DNDEBUG -I"." -c -o "bin.v2\libs\filesystem\build\qcc\release\link-static\operations.o" "libs\filesystem\src\operations.cpp"
...failed qcc.compile.c++ bin.v2\libs\filesystem\build\qcc\release\link-static\operations.o... ...skipped <pbin.v2\libs\filesystem\build\qcc\release\link-static>libboost_filesystem.a for lack of <pbin.v2\libs\filesystem\build\qcc\release\link-static>operations.o... ...skipped <pstage\lib>libboost_filesystem.a for lack of <pbin.v2\libs\filesystem\build\qcc\release\link-static>libboost_filesystem.a ...failed updating 1 target ...skipped 2 targets...

在我的windows 10机器上,有什么办法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2018-11-12 14:09:54

我也有同样的问题。这是由boost调用QNX 7或更高版本中不存在的函数引起的。

对于这个问题有一个bug条目,有一个可能的解决方案:https://github.com/boostorg/filesystem/issues/89

简而言之:在第1482行的Boost 1.68.0中,在“filesystem/src/opers.cpp”中的函数“权限”中添加以下一行:

&& !(defined(__QNX__) && (_NTO_VERSION <= 700)) \

请注意,QNX 7或更高版本(_NTO_VERSION)有版本检查。修改以后的版本(请参阅版本描述)。

诚挚的问候

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52284446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档