【问题标题】:Cannot run C compiled program on ubuntu无法在 ubuntu 上运行 C 编译程序
【发布时间】:2016-02-23 20:29:02
【问题描述】:

我写了一个最简单的C脚本hello.c然后 使用 gcc 编译它。
代码是

#include <stdio.h>
main() {
printf("Hello World\n");
}

此代码直接来自 How to Compile and Run a C Program on Ubuntu Linux

我已经使用命令gcc -o hello hello.c编译了它
然后我在同一目录下得到了程序hello
我试图通过

来执行它
./hello

但是没有用。
我也试过了

ls -l

结果是

-rw-r--r-- 1 myname myname    1234 Nov 21 00:00 hello

我试图通过

给这个文件一个可执行权限

chmod 777 你好

但权限没有改变。
我也试过了

sudo chmod 777 你好

但还是不行。
文件和脚本位于不同的驱动器中(物理上位于同一驱动器上,但安装的分区与 Ubuntu 不同)。

如何在 Ubuntu 中执行 hello
我的程序有什么问题?

【问题讨论】:

  • 当您尝试运行 chmod 时的消息是什么?
  • @Sunny 写成 `-rw-r--r-- 1 myname myname 1234 Nov 21 00:00 hello`
  • sudo chmod 777 hello 的输出是什么
  • 你有运行 sudo 的必要权限吗?即您是 root 用户还是可以使用 sudo 的用户?

标签: c ubuntu gcc permissions execute


【解决方案1】:

您可能没有驱动器的权限,您可以使用 chown 设置权限
sudo chown -R yourusername /media/username/mountpoint
将 mountpoint 替换为实际的挂载点名称。

【讨论】:

  • 没用。此外,chown -R myname /media/mountpoint 什么也没返回。 (我知道 mountpoint 是驱动器的挂载点的名称)。
  • chown后请重新编译程序
  • 重新编译并运行它,但它返回bash: ./hello: permission deniedchmod 777 hello 不返回任何内容。
【解决方案2】:

您的程序似乎很好(在我的 Ubuntu 系统上工作)。您似乎无权更改可执行文件所在驱动器的权限。该过程是否适用于您的个人主文件夹?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多