静态编译helloworld程序,无法运行

cainiao_learn 2014-02-21 03:39:31
arm-none-linux-gnueabi-gcc静态编译了helloworld的简单程序;
然后,push到板子上 adb push a.out /data/local/. ;
最后运行root@android:/data/local # ./a.out
显示255|root@android:/data/local #
更改权限chmod 777 a.out也没用
有时候显示sh: ./a.out: No such file or directory
网上查了好多资料和帖子,发现大家静态编译的都是可以的,为什么到我这里就不行了呢,求解答!!!


...全文
585 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵转世 2015-07-24
  • 打赏
  • 举报
回复
确认开发板上有这个文件吗?
bdwgbdwg 2015-07-24
  • 打赏
  • 举报
回复
$(CC) -o hello hello.o 改成 $(CC) --static -o hello hello.o 即ok
Wenxy1 2014-02-26
  • 打赏
  • 举报
回复
引用 14 楼 cainiao_learn 的回复:
[quote=引用 13 楼 wenxy1 的回复:] 编译环境的问题, 在linux中,用file命令查看目标文件的类型吧。
hello.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, not stripped 帮忙看看,这样是说明文件是否可以执行呢? [/quote] 是可执行文件ELF格式。 如果不行,要本原因是编译环境引起的。
cainiao_learn 2014-02-24
  • 打赏
  • 举报
回复
引用 13 楼 wenxy1 的回复:
编译环境的问题, 在linux中,用file命令查看目标文件的类型吧。
hello.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, not stripped 帮忙看看,这样是说明文件是否可以执行呢?
Wenxy1 2014-02-21
  • 打赏
  • 举报
回复
编译环境的问题, 在linux中,用file命令查看目标文件的类型吧。
chuan_0 2014-02-21
  • 打赏
  • 举报
回复
工具链是随便下载的一个还是怎么的,我以前也是从网上下载了一个,编译出来不能执行,最后还是用的厂家体统的工具链
cainiao_learn 2014-02-21
  • 打赏
  • 举报
回复
这么写的Makefile: CC = /usr/local/arm-2009q1/bin/arm-none-linux-gnueabi-gcc hello:hello.o $(CC) -o hello hello.o hello.o : hello.c $(CC) -c hello.c clean : rm hello.o make编译后,将hello文件push到板子上,还是不能运行。请问板子上还需要设置什么吗?
cainiao_learn 2014-02-21
  • 打赏
  • 举报
回复
引用 9 楼 s060403072 的回复:
请检查你的Makefile,一般有两种可能,一是你的内核中根本就没有这个头文件;二是你的Makefile中的库文件路径没有指定正确,这种情况下建议用库文件的绝对路径来指定。
这个程序还需要写Makefile吗? 如果非要写,可以说的详细些吗?何谓“建议用库文件的绝对路径来指定”? 谢谢
海兰 2014-02-21
  • 打赏
  • 举报
回复
请检查你的Makefile,一般有两种可能,一是你的内核中根本就没有这个头文件;二是你的Makefile中的库文件路径没有指定正确,这种情况下建议用库文件的绝对路径来指定。
cainiao_learn 2014-02-21
  • 打赏
  • 举报
回复
引用 7 楼 neustar1 的回复:
[quote=引用 4 楼 cainiao_learn 的回复:] [quote=引用 2 楼 neustar1 的回复:] [quote=引用 楼主 cainiao_learn 的回复:] arm-none-linux-gnueabi-gcc静态编译了helloworld的简单程序; 然后,push到板子上 adb push a.out /data/local/. ; 最后运行root@android:/data/local # ./a.out 显示255|root@android:/data/local # 更改权限chmod 777 a.out也没用 有时候显示sh: ./a.out: No such file or directory 网上查了好多资料和帖子,发现大家静态编译的都是可以的,为什么到我这里就不行了呢,求解答!!!
试试gcc -c HelloWorld.c -o HelloWorld ./HelloWord[/quote] 不用gcc编译吧: root@android:/data/local # ./HelloWorld sh: ./HelloWorld: not executable: magic 7F45 [/quote]我只是这么写,你用arm-none-linux-gnueabi-gcc编译不就行了[/quote] 不行的,试过了,提示:sh: ./HelloWorld: No such file or directory
__cc__ 2014-02-21
  • 打赏
  • 举报
回复
引用 4 楼 cainiao_learn 的回复:
[quote=引用 2 楼 neustar1 的回复:] [quote=引用 楼主 cainiao_learn 的回复:] arm-none-linux-gnueabi-gcc静态编译了helloworld的简单程序; 然后,push到板子上 adb push a.out /data/local/. ; 最后运行root@android:/data/local # ./a.out 显示255|root@android:/data/local # 更改权限chmod 777 a.out也没用 有时候显示sh: ./a.out: No such file or directory 网上查了好多资料和帖子,发现大家静态编译的都是可以的,为什么到我这里就不行了呢,求解答!!!
试试gcc -c HelloWorld.c -o HelloWorld ./HelloWord[/quote] 不用gcc编译吧: root@android:/data/local # ./HelloWorld sh: ./HelloWorld: not executable: magic 7F45 [/quote]我只是这么写,你用arm-none-linux-gnueabi-gcc编译不就行了
cainiao_learn 2014-02-21
  • 打赏
  • 举报
回复
引用 3 楼 thefirstz 的回复:
交叉编译的环境设置好了没?
PC上执行arm-none-linux-gnueabi-gcc -v 发现交叉编译器是装好的。 请问还需要其他什么设置吗
cainiao_learn 2014-02-21
  • 打赏
  • 举报
回复
引用 3 楼 thefirstz 的回复:
交叉编译的环境设置好了没?
请教怎么设置
cainiao_learn 2014-02-21
  • 打赏
  • 举报
回复
引用 2 楼 neustar1 的回复:
[quote=引用 楼主 cainiao_learn 的回复:] arm-none-linux-gnueabi-gcc静态编译了helloworld的简单程序; 然后,push到板子上 adb push a.out /data/local/. ; 最后运行root@android:/data/local # ./a.out 显示255|root@android:/data/local # 更改权限chmod 777 a.out也没用 有时候显示sh: ./a.out: No such file or directory 网上查了好多资料和帖子,发现大家静态编译的都是可以的,为什么到我这里就不行了呢,求解答!!!
试试gcc -c HelloWorld.c -o HelloWorld ./HelloWord[/quote] 不用gcc编译吧: root@android:/data/local # ./HelloWorld sh: ./HelloWorld: not executable: magic 7F45
昵称很不好取 2014-02-21
  • 打赏
  • 举报
回复
交叉编译的环境设置好了没?
__cc__ 2014-02-21
  • 打赏
  • 举报
回复
引用 楼主 cainiao_learn 的回复:
arm-none-linux-gnueabi-gcc静态编译了helloworld的简单程序; 然后,push到板子上 adb push a.out /data/local/. ; 最后运行root@android:/data/local # ./a.out 显示255|root@android:/data/local # 更改权限chmod 777 a.out也没用 有时候显示sh: ./a.out: No such file or directory 网上查了好多资料和帖子,发现大家静态编译的都是可以的,为什么到我这里就不行了呢,求解答!!!
试试gcc -c HelloWorld.c -o HelloWorld ./HelloWord
__cc__ 2014-02-21
  • 打赏
  • 举报
回复
.out可以执行吗?不是可执行文件后缀。。。

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧