当前位置: 首页 > web >正文

鸿蒙编译boost

openharmony

deveco 4.1支持armeabi-v7a
deveco 5.0后不支持arm32位系统

boost编译

使用deveco的写cmake集成boost
boost使用1.88的最新版本,带cmake工具链
https://github.com/boostorg/boost.git
boost的源码都在sub_module中

deveco 4.1的版本sdk最高到9,cmake版本比较低,类似下面的错误(sdk9中兼容性不太好,很多函数头文件中没有定义,sdk高版本中才有)

  • The property “CMAKE_CXX_STANDARD_REQUIRED” is not allowed

通过使用sdk13等高版本的cmake可以解决,cmake版本3.22

通过subdirs集成boost项目到项目中,点击deveco run执行编译

subdirs(d:/opensource/boost            //deveco中项目只能一个个添加后注释的方式编译,一个项目错误,其他项目都会停止编译
)

编译生成的文件都在本项目中,即使subdirs不在本项目中

  • a文件在.cxx目录中的
  • so文件在build/intermediates
    在这里插入图片描述

使用boost

编译完成后可以注释掉subdirs模块

subdirs(d:/opensource/boost
)

使用find_package查找boost库信息,编译好的so和a通过手动指定路径的方式导入
如何还是找不到,使用set的方式手动添加定义

set(Boost_DIR d:/opensource/boost)
set(Boost_INCLUDE_DIR d:/opensource/boost/libs/config/include)

链接问题

使用objdump查看完整的函数信息

objdump -tC libboost_log.so.1.88.0 |grep boost::log::v2_mt_posix::aux::default_attribute_names::line_id

鸿蒙中cmake设置输出so文件,通过查找源码函数定义,发现cmake添加如下定义才能链接成功

add_definitions(-DBOOST_ALL_DYN_LINK)

http://www.xdnf.cn/news/4565.html

相关文章:

  • 浅谈微前端沙箱机制
  • 报表分析报告怎么写?零基础掌握报表分析三要素!
  • canal mysqltomysql增加同步的库操作
  • 96、数图求解(整数规划建模求解)
  • 分布式-Redis分布式锁
  • 如何用FastMCP快速开发自己的MCP Server?
  • 2024ccpc【上海+陕西】
  • Windows远程桌面实现之十七:基于浏览器的文件和目录传输(一)
  • 解决 win11 连接共享打印机,报错 0x00000709 问题
  • Analytics Service 对生产环境性能的影响
  • Spring-博客系统项目
  • 动态规划之回文串问题
  • 第7章-3 维护索引和表
  • 添加地形与自定义地形
  • HTML基础2-空元素,元素属性与页面的结构
  • livedata使用,完整的livedata的Demo
  • Spring 中org.springframework.core.Ordered接口的实战教学
  • 在 ESP-IDF 中使用 .a 静态库调用
  • 解析表观遗传学的工具——ChIP-seq(一)
  • 数据库即服务(DBaaS)领域的最新创新
  • 每日一道leetcode
  • SCADA|KingSCADA运行报错:加载实时库服务失败
  • git 入门使用教程
  • 全国通用Y1大型游乐设施修理作业证精选题
  • PTS-G5K13M RF Generator 5kW / 13MHz 射频电源User s Manual
  • Spring Boot 如何自动配置事务管理器?
  • 数据结构之线性表
  • 阿里云codeup以及本地gitclone+http
  • Mybatis标签使用 -association 绑定对象,collection 绑定集合
  • ROS第十三梯:RViz+Marker——自定义几何形状可视化