Ubuntu :: ./program:权限被拒绝

时间:2016-09-24 19:16:37

标签: c linux ubuntu gcc

首先,我的问题与此类似:Ubuntu says "bash: ./program Permission denied"

但是,我觉得有必要进一步澄清。

当我使用以下程序编译程序时

gcc -c file.c -o file

并运行

./file 

我收到此错误:

bash:./file: Permission denied

当我使用

chmod u+x file 

然后运行

./file

我收到此错误:

bash: ./file: cannot execute binary file: Exec format error

然而,当我使用

进行编译时
gcc file.c -o file <br/>

我的程序使用

完美运行
./file

有人可以指出在-c中使用gcc参数有什么问题吗?

1 个答案:

答案 0 :(得分:3)

输入gcc --help以查看帮助。

-c                      Only run preprocess, compile, and assemble steps

这意味着,使用此选项运行时,GCC不会链接可执行文件与任何(甚至系统)库。

简而言之,要运行程序,操作系统需要一个起始点,它位于某个系统库中。因为在你的情况下,GCC没有将可执行文件与任何链接,操作系统不知道如何运行文件,从哪里开始。