我用arm-linux-gcc4.3.2 编译的过的文件在S3C2440上不能执行,用原来的编译器编译同样的文件可以执行

为什么啊,用readelf -h 查看两个二进制文件有以下不同,有遇到过的大神吗?在线等

你的目标平台都不一样,
show_font2是 OS/ABI: UNIX-SYSTEM V;
show_font是 OS/ABI: ARM
自然,show_font2无法在ARM平台运行。
具体要看你编译的过程,如果是命令行直接编译,请贴出来,
如果是makefile编译,请用 make -n ,将输出的信息贴出来。追问

就是用 arm-linux-gcc -o 

是编译器的原因吗?


谢谢

追答

应该是,但对比了我这边的arm-linux-gcc, arm-linux-gnueabihf-gcc, 没发现明显的问题。

你运行下file show_font2,看下信息。

推荐你还是用官方2440使用的工具链。

附上我这边arm-linux-gcc编译器显示信息(有所删减):

Configured with: --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.5.1 --with-sysroot=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --enable-languages=c,c++ --disable-multilib --with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=softfp --with-pkgversion=ctng-1.8.1-FA --with-bugurl=http://www.arm9.net/ --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'--enable-threads=posix --with-local-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.5.1 (ctng-1.8.1-FA)

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-04
linux内核的版本,要相同 。。。。。。
相似回答