• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 交叉编译简单hello程序,放到开发板上执行./hello,提示:./hello not found 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 2535
精华: 0
发帖: 73
金钱: 690 两
威望: 626 点
综合积分: 146 分
注册时间: 2008-11-23
最后登录: 2011-12-15
楼主  发表于: 2009-06-15 11:56

 交叉编译简单hello程序,放到开发板上执行./hello,提示:./hello not found

大家好,我交叉编译了一个简单的程序,hello,就是输出一句话,但是放到开发板上执行./hello ,提示./hello not found,
首先我付给hello权限了,是777呢?另外我把库文件考的/lib目录下了,而且还之ld.so.conf里添加了/lib目录,按理说不添加也是没问题的,会自动去/lib目录里找的,但是现在却提示not found是什么原因呢?

还有我的/lib文件夹的库文件和我交叉编译hello不是同一个交叉编译器,就是/lib下的库文件是友善最新的4.3.2交叉编译器的库文件,而我交叉编译hello的编译器是4.2.1,不知是不是两个交叉编译器不同的问题啊,

谢谢大家了。
这个阶段正是我事业的上升期,我怎么能走得开呢?
级别: 精灵王
UID: 3197
精华: 3
发帖: 770
金钱: 6995 两
威望: 5398 点
综合积分: 1600 分
注册时间: 2008-12-30
最后登录: 2010-12-31
1楼  发表于: 2009-06-15 16:15
正是这个原因。
级别: 侠客
UID: 2535
精华: 0
发帖: 73
金钱: 690 两
威望: 626 点
综合积分: 146 分
注册时间: 2008-11-23
最后登录: 2011-12-15
2楼  发表于: 2009-06-15 20:22
果真是这个问题啊,谢谢26672624了,

我现在遇到麻烦是,使用友善4.3.2编译器的lib文件就可以通过nfs启动系统(busybox文件系统也是用友善4.3.2编译的)内核是用友善4.3.2编译器编译的,当我把 4.2.1编译器的lib文件放到文件系统里就不能启动,提示 :kernel panic - not syncing no init found try psssing init = option to kernel(看了一下,出现这样的错误的原因是挂载上了文件系统,但是没有执行/etc/init.d/rcS文件,)
但是为什么不能执行rcS文件呢?可能是执行rcS文件要用到sh命令,而sh需要分享库,这时问题出现了,用友善4.3.2编译的busybox的sh命令使用4.2.1交叉编译器的动态库文件时,就出现无法执行sh命令的问题,要解决这样的毛病是不是要用4.2.1编译busybox呢,不知我这样分析的对不,请指点。

换回友善4.3.2就可以启动,难道从内核,文件系统(busybox),到文件系统里的lib 文件,都要是一个编译器来完成吗?换一个就不行吗?

另外我直接把以前制作的文件系统拷贝到nfs目录里也直接可以启动,难道文件系统使用的交叉编译器的lib库文件和编译busybox文件系统的编译器必须是一样的吗?谢谢了
[ 此帖被maidisula在2009-06-15 21:09重新编辑 ]
这个阶段正是我事业的上升期,我怎么能走得开呢?
级别: 精灵王
UID: 3197
精华: 3
发帖: 770
金钱: 6995 两
威望: 5398 点
综合积分: 1600 分
注册时间: 2008-12-30
最后登录: 2010-12-31
3楼  发表于: 2009-06-15 22:56
EABI和ABI还是有很多不同的吧,混用是不行d,使用静态编译或许可行。
级别: 新手上路
UID: 6752
精华: 0
发帖: 39
金钱: 200 两
威望: 48 点
综合积分: 78 分
注册时间: 2009-06-15
最后登录: 2012-08-13
4楼  发表于: 2009-06-16 08:29
文件系统及文件系统中的lib要用同一个编译器,内核可以不用同一个编译器,内核不需要lib。
级别: 侠客
UID: 2535
精华: 0
发帖: 73
金钱: 690 两
威望: 626 点
综合积分: 146 分
注册时间: 2008-11-23
最后登录: 2011-12-15
5楼  发表于: 2009-06-16 08:46
楼上说的对,通过测试后我也是这样想的,编译busybox和做好的文件系统的lib库必须是同一个编译器,那我就从新编译busybox吧。
级别: 新手上路
UID: 6392
精华: 0
发帖: 45
金钱: 395 两
威望: 351 点
综合积分: 90 分
注册时间: 2009-05-31
最后登录: 2015-12-18
6楼  发表于: 2009-06-16 09:31
在交叉編譯時加入 -static 參數就可執行了
應該是在target board 上找不到庫文件的原因

本人也遇過~~
级别: 侠客
UID: 2535
精华: 0
发帖: 73
金钱: 690 两
威望: 626 点
综合积分: 146 分
注册时间: 2008-11-23
最后登录: 2011-12-15
7楼  发表于: 2009-06-16 10:22
快崩溃了,用我的4.2.1编译busybox,就是不过,换了好几个版本都有错误,使用友善的4.3.2都能编译过去,愁死我了
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
8楼  发表于: 2009-06-16 10:50
引用第7楼maidisula于2009-06-16 10:22发表的  :
快崩溃了,用我的4.2.1编译busybox,就是不过,换了好几个版本都有错误,使用友善的4.3.2都能编译过去,愁死我了

如果你不把编译出错的信息贴出来,没人有兴趣去猜
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 2535
精华: 0
发帖: 73
金钱: 690 两
威望: 626 点
综合积分: 146 分
注册时间: 2008-11-23
最后登录: 2011-12-15
9楼  发表于: 2009-06-16 11:27
谢谢版主,这是错误,1.14.1和1.13.3的错误都是一样的,
In file included from include/libbb.h:35,
                 from networking/route.c:31:
/usr/local/lib/gcc/arm-linux/4.2.1/../../../../arm-linux/include/sys/wait.h:103: error: expected identifier before numeric constant
In file included from include/libbb.h:37,
                 from networking/route.c:31:
/usr/local/lib/gcc/arm-linux/4.2.1/../../../../arm-linux/include/time.h:160: error: redefinition of ‘struct itimerspec’
In file included from networking/route.c:31:
include/libbb.h:92: error: redefinition of ‘struct sysinfo’
networking/route.c: In function ‘INET6_setroute’:
networking/route.c:342: error: storage size of ‘rt’ isn’t known
networking/route.c:342: warning: unused variable ‘rt’
networking/route.c: At top level:
networking/route.c:448: error: ‘RTF_DEFAULT’ undeclared here (not in a function)
networking/route.c:449: error: ‘RTF_ADDRCONF’ undeclared here (not in a function)
networking/route.c:450: error: ‘RTF_CACHE’ undeclared here (not in a function)
networking/route.c: In function ‘INET6_displayroutes’:
networking/route.c:601: error: invalid operands to binary |
networking/route.c:601: error: invalid operands to binary |
networking/route.c:601: error: invalid operands to binary |
networking/route.c:601: error: invalid operands to binary &
networking/route.c:601: warning: passing argument 2 of ‘set_flags’ makes integer from pointer without a cast
make[1]: *** [networking/route.o] 错误 1
make: *** [networking] 错误 2

使用友善4.3.2都能编译过去,请版主帮忙看看原因,谢谢了
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go