linuxdebian 发表于 2010-09-16 08:48

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!

不知道是交叉编译环境问题还是其他问题。

EricFisher 发表于 2010-09-16 08:52

动态库的问题。如果你的交叉工具链使用目标机的动态库,就可以了。

linuxdebian 发表于 2010-09-16 10:34

如何使用目标机器的动态库?是交叉编译链的问题吗?

EricFisher 发表于 2010-09-16 17:57

静态的不好使么?

prolj 发表于 2010-09-16 18:12

是因为这样的,你的cross toolchain的libc跟你的目标ARM板子的libc可能不一样。

cjaizss 发表于 2010-09-16 23:20

动态库的问题,如果资源足够,那么你就考虑用静态来解决这个问题算了,解决快一点.

linuxdebian 发表于 2010-09-17 16:03

回复 4# EricFisher


    因为要做USB驱动相关开发,要生成动态链接库so文件,还没有试过静态编译工程。先用hello试的。

linuxdebian 发表于 2010-09-17 16:05

回复 6# cjaizss



    资源足够?什么意思?

cjaizss 发表于 2010-09-18 23:36

回复cjaizss



    资源足够?什么意思?
linuxdebian 发表于 2010-09-17 16:05 http://linux.chinaunix.net/bbs/images/common/back.gif


    比如你的flash足够大
页: [1]
查看完整版本: arm debian5交叉编译问题