ubuntu下编译个hello.c 执行时总是提醒无法执行二进制文件

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
soulofsnow
帖子: 2
注册时间: 2011-08-20 21:53

ubuntu下编译个hello.c 执行时总是提醒无法执行二进制文件

#1

帖子 soulofsnow » 2011-08-20 21:59

在vmware里面新装了个ubuntu11.04;
创建了个hello.c文件;
gcc -o hello -c hello.c;
./hello

提示 bash: ./hello: 无法执行二进制文件

chmod a+x hello 已经执行过了。 不知道有没有遇到过类似问题的朋友。



过程可参考这里:

root@snow-virtual-machine:/mySource# ll
总用量 12
drwxr-xr-x 2 snow snow 4096 2011-08-20 22:04 ./
drwxr-xr-x 23 root root 4096 2011-08-20 20:50 ../
-rw-r--r-- 1 root root 73 2011-08-20 22:03 hello.c
root@snow-virtual-machine:/mySource# cat hello.c
#include <stdio.h>

int main()
{
printf("hello world!\n");
return 0;
}
root@snow-virtual-machine:/mySource# gcc -o hello -c hello.c
root@snow-virtual-machine:/mySource# ll
总用量 16
drwxr-xr-x 2 snow snow 4096 2011-08-20 22:04 ./
drwxr-xr-x 23 root root 4096 2011-08-20 20:50 ../
-rw-r--r-- 1 root root 856 2011-08-20 22:04 hello
-rw-r--r-- 1 root root 73 2011-08-20 22:03 hello.c
root@snow-virtual-machine:/mySource# chmod a+x hello
root@snow-virtual-machine:/mySource# ll
总用量 16
drwxr-xr-x 2 snow snow 4096 2011-08-20 22:04 ./
drwxr-xr-x 23 root root 4096 2011-08-20 20:50 ../
-rwxr-xr-x 1 root root 856 2011-08-20 22:04 hello*
-rw-r--r-- 1 root root 73 2011-08-20 22:03 hello.c
root@snow-virtual-machine:/mySource# ./hello
bash: ./hello: 无法执行二进制文件
root@snow-virtual-machine:/mySource# sudo ./hello
./hello: 1: Syntax error: word unexpected (expecting ")")
头像
neaghfoz
帖子: 97
注册时间: 2011-03-18 0:54

Re: ubuntu下编译个hello.c 执行时总是提醒无法执行二进制文件

#2

帖子 neaghfoz » 2011-08-20 22:17

为什么你要用-c参数?这样编译是还没有link的,去掉-c参数即可。
写代码的汉子/你威武雄壮/飞驰的代码/像疾风一样/一望无际的BUG/随你去流浪/你的口袋像戈壁一样空旷

Ubuntu12.04+Emacs24+HHKB+Git
头像
neaghfoz
帖子: 97
注册时间: 2011-03-18 0:54

Re: ubuntu下编译个hello.c 执行时总是提醒无法执行二进制文件

#3

帖子 neaghfoz » 2011-08-20 22:22

补充一点,你这样生成的hello是一个obj文件,再执行一次

代码: 全选

gcc hello
这样就能生成二进制的a.out了。
man一下gcc就清楚一些选项的用法了。
写代码的汉子/你威武雄壮/飞驰的代码/像疾风一样/一望无际的BUG/随你去流浪/你的口袋像戈壁一样空旷

Ubuntu12.04+Emacs24+HHKB+Git
soulofsnow
帖子: 2
注册时间: 2011-08-20 21:53

Re: ubuntu下编译个hello.c 执行时总是提醒无法执行二进制文件

#4

帖子 soulofsnow » 2011-08-20 22:33

neaghfoz 写了:为什么你要用-c参数?这样编译是还没有link的,去掉-c参数即可。

恩,是的。谢谢了。
朱鸽Ubuntu
帖子: 2
注册时间: 2013-07-24 11:18
系统: Linux

Re: ubuntu下编译个hello.c 执行时总是提醒无法执行二进制文件

#5

帖子 朱鸽Ubuntu » 2013-07-24 11:20

请问这个问题你是怎么解决我,我才遇到了同样的问题,新手 :em01
回复