作镜像踩坑记录

前言:

        要做一个arm架构的镜像,因为arm机器资源有限,编译程序比较慢,也增加考代码繁琐步骤。所以要制作一个交叉编译环境在本地直接编译程序。先让大神给我下载了纯净的对应机器的x86镜像,然后开始我的移植编译库之旅。

遇到问题:

  • No rule to make target '/usr/lib/aarch64-linux-gnu/libbz2.so'

查看这个库的信息,这个库指向了系统库路径文件,再把系统库也从arm机器中copy过来即可

  • Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)  

直接apt-get install安装。 工具直接安装,编译库需要从arm架构下copy。

  • Target "eq-map_service" links to target "AWS::crypto" but the target was not found.  Perhaps a find_package() call is missing for an IMPORTED  target, or an ALIAS target is missing?

通过各种折腾最终发现在arm设备里面编译

在镜像里面编译

两者链接的库的目录不对。在根据线索查询,发现干了一件很蠢的事,把lib/aarch64-linux-gnu 复制到/usr/local/lib里面去了。

  • 能编译过,运行时报了这个错:symbol lookup error: ./xxx: undefined symbol: _ZNK3Aws5Utils6Stream14ResponseStream19GetUnderlyingStreamEv

从报错中看跟aws有关,然后分析aws库。发现aws库之前复制到镜像了,在开发过程中,aws库版本有问题,更新了aws版本,没有替换到镜像里面,更新到镜像后,正常运行。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值