编译OpenSycl报错Cannot run simple program using std::filesystem

现象:查看cmake产生的临时文件xxx/build/CMakeFiles/CMakeError.log文件可以发现,不论是CXX_FILESYSTEM_NO_LINK_NEEDED还是CXX_FILESYSTEM_STDCPPFS_NEEDED都是undefine std::filesystem......的错误,而第三次尝试CXX_FILESYSTEM_CPPFS_NEEDED也是报错,具体错误是什么不记得了。反正3种情况编译都没通过,自然是运行不了simple program的。

原因:上述现象的根本原因是boost安装没有安装在默认目录(没有/usr/local目录权限),而是用--prefix修改到了其他的目录,那么cmake就找不到boost了。

解决方法:修改opensycl根目录下的cmake/FindFilesystem.cmake文件,在尽量靠前的地方添加如下2行命令告诉cmake去哪里找boost的include和lib,其中XXXpath用自己安装boost时指定的--prefix路径替换。

set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "/XXXpath/boost/include")
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "/XXXpath/boost/lib")

保存后,记得把build目录【清空】再重新cmake即可。

本文参考:

Could NOT find Boost (missing: filesystem system) (found version "x.xx.x") - 知乎 (zhihu.com)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值