【发布时间】:2020-05-21 06:49:57
【问题描述】:
我已经为我的 beaglebone 板交叉编译了这个小应用程序:
/* led_test.c */
int main(int argc, char const *argv[])
{
return 0;
}
编译成功,但如果我尝试在目标板上运行应用程序,我会得到:
# cd /bin/
# ls -la | grep led_test
-rwxr-xr-x 1 default default 13512 Feb 5 2020 led_test
# led_test
-sh: ./led_test: not found
为什么我不能在我的 Beaglebone 板上运行自定义应用程序?谁能给我解释一下,好吗?
关于我的环境的一些信息:
1. work-station: Ubuntu 18.04.4 LTS x86-64
2. target machine: ARMv7 beaglebone board
3. cross-compiler: gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf
4. I built u-boot and Linux kernel with this toolchain and mounted rootfs via NFS.
UPD 1:
我尝试使用这个./led_test 而不是led_test。没关系,因为我的应用是放在/bin目录下的。
【问题讨论】:
-
对您的代码运行
ldd,例如,目标中的任何其他可执行文件。告诉我们你看到了什么。 -
而不是
ldd,更好地使用(在带有交叉编译器的构建机器上):readelf -d led_test。它提供了可执行文件所需的共享库列表。检查这些是否存在于您的系统中。
标签: linux-kernel beagleboneblack buildroot beagleboard rootfs