Boost 适用 filesystem 库,statx 函数无法找到引用问题的解决方案。

1、boost 高版本使用了 statx 函数,这个函数是在 Linux 内核版本 4.11 之后引入的。

      所以:可以升级 Linux  内核版本到4.11之后即可。

2、降低 boost 库版本到 1.70 以下

3、正确的路,改 boost 的编译代码

先看这个: 

Filesystem Home (boost.org)

在看这个:

filesystem/CMakeLists.txt at develop · boostorg/filesystem (github.com) 

开始改改:

1、nano libs/filesystem/CMakeLists.txt 

2、新版 boost 的代码之中是显示定义了这个东西,老的没有,但是这东西就是一个定义宏:

没有就跟下面是一个效果。

它是做 #if BOOST_FILESYSTEM_DISABLE_STATX 判断的。

set(BOOST_FILESYSTEM_DISABLE_STATX OFF CACHE BOOL "Disable usage of statx API in Boost.Filesystem")

 OFF 就是这个宏值是0

把它改成:

set(BOOST_FILESYSTEM_DISABLE_STATX ON CACHE BOOL "Disable usage of statx API in Boost.Filesystem")

 这里是说改 CMakeLists.txt 来解决,当然也可以直接去该 filesystem 库的根头文件(配置h头文件)在里面直接定义 BOOST_FILESYSTEM_DISABLE_STATX 宏,值就是1。

解决:现在再把这个 filesystem 库重新编译出来,自己的解决方案工程在链接它就不会 statx 函数找不到引用的问题了。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值