• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 交叉编译的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 44194
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2011-04-23
最后登录: 2012-01-05
楼主  发表于: 2011-08-18 11:02

 交叉编译的问题

我把光盘上的 arm-linux-gcc-4.5.1-v6-vfp-20101103 装在 ubunt10.04 下面,然后用这个交叉编译器编译了一个测试程序,结果在开发板上运行显示:
复制代码
  1. Segmentation fault

请问为什么?这个交叉编译器只能在 fedora 下面用么?我的测试程序很简单(如下),在 ubuntu 下用 gcc 编译后是可以运行的。

复制代码
  1. #include <stdio.h>
  2. void main()
  3. {
  4.     printf("test !\n");
  5. }
[ 此帖被firstime在2011-08-18 13:45重新编辑 ]
级别: 新手上路
UID: 44194
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2011-04-23
最后登录: 2012-01-05
1楼  发表于: 2011-08-18 12:51
我先是刷的 Android,然后把 linux 刷回去就出现这个问题了。刷机用的系统都是买板子的时候带的那个 SD 卡里的。难道卡里的系统有问题?
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
2楼  发表于: 2011-08-18 13:00
你放到什么板什么系统上运行?
级别: 新手上路
UID: 44194
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2011-04-23
最后登录: 2012-01-05
3楼  发表于: 2011-08-18 13:03
6410,板子自带的那个经典 linux 系统
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
4楼  发表于: 2011-08-18 13:50
经典linux系统 是哪个版本?
级别: 新手上路
UID: 44194
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2011-04-23
最后登录: 2012-01-05
5楼  发表于: 2011-08-18 14:07
就是光盘 images 目录里的那个 linux,我什么都没改过,应该是 Linux-2.6.38 吧。
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
6楼  发表于: 2011-08-18 14:29
具体步骤贴出来看看了
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 44194
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2011-04-23
最后登录: 2012-01-05
7楼  发表于: 2011-08-18 14:52
1、将“现成即用的配置文件-slc\Linux-RAM256-N43”下的 FriendlyARM 复制到 images 下,然后将开发板开关打到 SD-BOOT,然后上电刷机,超级终端显示成功,linux 正常启动;
2、将 arm-linux-gcc-4.5.1-v6-vfp-20101103 复制到 ubuntu10.04 下,tar -zxvf 解压,编译:arm-linux-gcc -o test test.c;
3、命令行 ftp 登上开发板:ftp 192.168.1.230,上传文件到开发板:put test;
4、进入 /home/plg 目录执行程序:
   cd /home/plg
   ./test
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
8楼  发表于: 2011-08-18 15:13
1) arm-linux-gcc -v 以确定使用的编译器是正确的
2) 计算md5sum 确定板上的 test 与编译生成的 test 是相同的

另, 你用的是哪个版本的光盘?
级别: 新手上路
UID: 44194
精华: 0
发帖: 29
金钱: 145 两
威望: 29 点
综合积分: 58 分
注册时间: 2011-04-23
最后登录: 2012-01-05
9楼  发表于: 2011-08-18 20:56
谢谢楼上指教,两个文件的 MD5 的确不同。但是,我可以确定我上传到开发板上的文件就是我编译产生的文件。但不明白为什么在上传过程中会造成文件改变一一我是先将文件从 ubuntu 下复制到 windows,然后在 windows 命令行下用 ftp 上传到开发板的。

另外顺带请教一个问题:我有一个 3.4.1 的 arm-linux-gcc,是 FL2440 开发板带的。为什么我用 3.4.1 版本的交叉编译器编译出来的文件不能在 Tiny6410 开发板上跑呢?根据惯性思维,程序不应该是向下兼容的么?低版本编译器所支持的指令高版本也应该支持啊?

谢谢解答!
[ 此帖被firstime在2011-08-19 10:10重新编辑 ]
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go