在将一个简单的 helloworld 从 openwrt 工具链(使用 uClibc,目标 IPQ4028)交叉编译到我的路由器 Gl-iNet-B1300 时,我遇到了类似的问题。编译成功后,我将文件 scp 到路由器,并在尝试执行此错误时出现:
root@GL-B1300:~# ./helloworld
/root/helloworld: can't load library 'libc.so.0'
当我运行 'ls -la | grep libc.so。在 /lib/ 上,出现了这样的问题:
libc.so.1 -> libuClibc-1.0.14.so
所以由于 libc.so.0 不存在,我只是在 /lib/ 中创建了一个链接
lib/# ln -s libc.so.1 libc.so.0
再次运行 'ls -la | grep libc.so.':
libc.so.0 -> libc.so.1
libc.so.1 -> libuClibc-1.0.14.so
然后,执行文件:
root@GL-B1300:~# ./helloworld
Hell! O' world, why won't my code compile?
The value of pi is 3.141593
我想这里真正的问题是我使用的工具链不是路由器固件的正确工具链。