facebook开源工具atosl在Linux和macOS下编译安装

本文记录了如何在Linux和macOS环境下编译atosl工具,由于atosl依赖的libdwarf库版本问题导致编译失败,解决方案是安装指定版本的libdwarf库。在Linux上,需要卸载最新版并安装20130729版本的libdwarf;在macOS上,同样安装旧版libdwarf,并处理libelf和libiberty的依赖问题。最终成功编译并展示了atosl的使用帮助。

facebook的 atosl 是一个 可在linux 环境下运行的部分替代macOS上 atos 的工具,但facebook从2013年开始就不再维护这个项目了,官方介绍的编译方式现在也有一定的问题,一番摸索后终于编译通过,现将过程记录一下

Linux下编译

atosl 依赖 libdwarf 库,这个库原本是可以用apt-get直接安装的,但这个库一直在不断迭代,atosl 当时使用的 libdwarf 版本和最新的版本已经有很大的出入,有些方法已经被移除,导致 atosl 无法编译通过

wget https://github.com/facebookarchive/atosl/archive/refs/tags/1.1.tar.gz
tar zxvf 1.1.tar.gz
cd atosl-1.1
make
cc -Wall -Werror -O2 -DATOSL_VERSION=\"1.1\" -MM atosl.c > atosl.dep
cc -Wall -Werror -O2 -DATOSL_VERSION=\"1.1\" -o atosl.o -c atosl.c
cc -o atosl atosl.o -ldwarf -liberty
/usr/bin/ld: atosl.o: in function `parse_function_starts':
atosl.c:(.text+0xe37): undefined reference to `_dwarf_decode_u_leb128'
/usr/bin/ld: atosl.c:(.text+0xe8b): undefined reference to `_dwarf_decode_u_leb128'
collect2: error: ld returned 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值