arm debian5交叉编译问题
开发用机:debian 5
目标系统:arm debian5(arm debian5是用QEMU虚拟安装的Linux系统)
交叉编译环境:crosstool-0.43.tar.gz, arm-linux-gcc 4.10
如果用 arm-linux-gcc -o hello hello.c
编译出来的文件:
#file hello
hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
到目标系统里面运行失败。
如果用 arm-linux-gcc -o hello hello.c -static
编译出来的文件:
#file hello
hello: ELF 32-bit LSB executable, ARM, version 1, statically linked, for GNU/Linux 2.4.18, not stripped
#./hello
到目标系统里面运行,显示 helloword!
不知道是交叉编译环境问题还是其他问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
比如你的flash足够大
回复 6# cjaizss
资源足够?什么意思?
回复 4# EricFisher
因为要做USB驱动相关开发,要生成动态链接库so文件,还没有试过静态编译工程。先用hello试的。
动态库的问题,如果资源足够,那么你就考虑用静态来解决这个问题算了,解决快一点.
是因为这样的,你的cross toolchain的libc跟你的目标ARM板子的libc可能不一样。
静态的不好使么?
如何使用目标机器的动态库?是交叉编译链的问题吗?
动态库的问题。如果你的交叉工具链使用目标机的动态库,就可以了。