无法使用基于qnx7.0的qcc为boost_1.68.0构建libboost_filesystem.a

时间:2018-09-11 21:27:00

标签: boost qcc

使用了以下选项

  1. ./ bootstrap.sh--with-toolset = qcc

  2. b2工具集= qcc target-os = qnxnto threadapi = p线程链接=静态-l240 --layout = system --without-python cxxflags =“-Vgcc_ntoarmv7le -Y_gpp -Wc,-std = gnu ++ 0x -D_LITTLE_ENDIAN“ linkflags =”-Vgcc_ntoarmv7le -Y_gpp -lang-c ++“ -j7

看到以下错误


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计算机为基础,对如何解决该问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

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

此问题有一个错误条目,并提供了可能的解决方案: https://github.com/boostorg/filesystem/issues/89

简而言之:在第1482行的Boost 1.68.0的“ filesystem / src / operations.cpp” 中的函数“ permissions” 中添加以下行: / p>

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

请注意,存在针对QNX 7或更早版本(_NTO_VERSION)的版本检查。修改以用于将来的版本(请参见_NTO_VERSION description)。

最诚挚的问候