您尚未登录。

楼主 # 2022-03-07 15:03:33

yelong98
会员
注册时间: 2020-06-03
已发帖子: 97
积分: 59.5

builroot工具链问题导致可执行文件运行报错-sh: ./demo: not found

如题,最近在折腾荔枝派zero运行lvgl,发现编译出来的demo放进v3s板子里, 运行一直报错-sh: ./demo: not found

# ldd demo                                                                                                                                             
checking sub-depends for 'not found'                                                                                                                   
checking sub-depends for 'not found'                                                                                                                   
checking sub-depends for 'not found'                                                                                                                   
        libm.so.6 => not found (0x00000000)                                                                                                           
        libts.so.0 => not found (0x00000000)                                                                                                           
        libc.so.6 => not found (0x00000000)                                                                                                           
        /lib/ld-linux-armhf.so.3 => /lib/ld-linux-armhf.so.3 (0x00000000)

ldd命令发现有不少so文件缺少,从工具链的地址里面找到相关so库,放到v3s板子里面,还是不能运行。
https://whycan.com/t_6679.html 帖子里面跟帖,经过小二哥的提示,需要用编译文件系统的同一个gcc编译 lvgl。
查看了一下buildroot-2019.08里面的配置,用的是内置工具链,然后坛子翻帖子,又找到一个和我一样情况的兄弟
https://whycan.com/t_2827.html#p23139 最后一楼的现象和我一模一样,现在要做的就是用buildroot自带的工具链去编译应用软件。

根据晕哥在帖子里面的提示,buildroot自带的工具链位置在buildroot-2019.08/output/host/bin
新的问题来了,lvgl的makefile用的是CC = arm-linux-gnueabihf-gcc
buildroot自带的工具链位置buildroot-2019.08/output/host/bin里面没有这个编译器,
lvlg项目的Makefile用CC = arm-linux-代替CC = arm-linux-gnueabihf-gcc,make会报错无法编译,特来请教一下踩过坑的老铁们,怎么解决这种问题?

离线

楼主 #2 2022-03-07 19:49:12

yelong98
会员
注册时间: 2020-06-03
已发帖子: 97
积分: 59.5

Re: builroot工具链问题导致可执行文件运行报错-sh: ./demo: not found

file demo
demo: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=48b3e7984f2a6a68de71957c385a5e4ac1d0e2d5, with debug_info, not stripped

离线

楼主 #3 2022-03-07 20:01:16

yelong98
会员
注册时间: 2020-06-03
已发帖子: 97
积分: 59.5

Re: builroot工具链问题导致可执行文件运行报错-sh: ./demo: not found

汇报一下进展,现在问题部分解决了,为啥说部分呢,lvgl8的工程还是照样报错无法编译。
但是编译helloworld是可以了,办法是按照晕哥和小二哥的办法,将交叉编译器指定为buildroot的默认编译器,即arm-linux-gcc。
但是如果将lvgl的makefile里面改为CC = arm-linux-gcc,编译报错
lvgl-8.1/tslib/libts.so: undefined reference to `snprintf@GLIBC_2.4'
libts.so: undefined reference to `__errno_location@GLIBC_2.4'
/lvgl-8.1/tslib/libts.so: undefined reference to `strpbrk@GLIBC_2.4'
这个有点摸不着头脑,感觉是缺了库里的函数

离线

楼主 #5 2022-03-07 20:35:21

yelong98
会员
注册时间: 2020-06-03
已发帖子: 97
积分: 59.5

Re: builroot工具链问题导致可执行文件运行报错-sh: ./demo: not found

设为绝对路径也无用,问题都在libts.so里面,慢慢搜索吧,坑多

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn