日期:2014-05-16  浏览次数:20714 次

linux下的运行二进制问题
我的系统:linux radhat 9.0
gcc版本 :gcc 3.2.2

问题: 之前有一段时间我在此系统下用GCC -O NAME -c NAME.c

通过了编译,运用./NAME运行文件可以运行,而且NAME的权限有X,

但是现在是同一个目录下,编写的C程序,也用上面同样的方式进行编译通过,

运用./NAME运行文件却出现权限不够,查看没有X项,更改权限过后,再./NAME运行,
却出现cannot execute binary file 不能运行二进制文件...

为什么会出现这样的呢? 该如何进行解决呢?

PS:我没有对系统更改过什么设置,只进行过多个源文件用GCC进行关联编译生a.out文件过...

请各位帮忙解决下,现在急需解决....

谢谢各位...

------解决方案--------------------
前几天也有人问你和你一样的问题
你编译可执行的二进制文件 用GCC -O NAME -c NAME.c
这是错误的 应该不加-c参数 -c参数只激活预处理 编译 和汇编 也就是他只把程序做成obj文件 是无法运行的
直接gcc -O NAME NAME.c
然后./NAME 来运行