Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ubuntu上运行C程序_C_Ubuntu 11.04 - Fatal编程技术网

在ubuntu上运行C程序

在ubuntu上运行C程序,c,ubuntu-11.04,C,Ubuntu 11.04,我是Ubuntu的新手。我想在Ubuntu上运行c程序。 我已经安装了build essential。 现在我试着按照下面的命令运行程序 sudo gedit first.c 然后输入基本的hello world程序。然后 cc -c first.c -o first.c 但在这个命令上,它显示错误为 没有输入文件 并告诉我如何运行此程序。首先,您不必以root用户身份编辑文件。那是个坏主意 行cc-c first.c-o first.c覆盖您不想要的c文件 cc first.c -o fi

我是Ubuntu的新手。我想在Ubuntu上运行c程序。 我已经安装了build essential。 现在我试着按照下面的命令运行程序

sudo gedit first.c
然后输入基本的hello world程序。然后

cc -c first.c -o first.c
但在这个命令上,它显示错误为

没有输入文件


并告诉我如何运行此程序。

首先,您不必以root用户身份编辑文件。那是个坏主意

cc-c first.c-o first.c
覆盖您不想要的c文件

cc first.c -o first
然后你想运行这个程序 你可以和我一起去

./first

您不希望在输出文件上显示
.c
。i、 e

cc -c first.c -o first
编辑:哎呀。您也不需要
-c

cc -o first first.c

该编译命令行应该已经工作了。但是,它将覆盖源文件

-o
选项告诉编译器如何命名输出文件,如果您将其命名为与源文件相同的名称,它将被覆盖

传递给编译器的第一个标志是
-c
,它告诉编译器生成一个对象文件。链接器稍后可以使用这些对象文件与其他对象文件链接,以创建最终的可执行程序。但是,它不会创建您可以运行的程序

要从单个源文件创建可执行程序,请执行以下操作:

$ cc first.c -o first
这将创建一个名为
first
的可执行程序(当然,如果没有错误)

然后运行此程序:

$ ./first
最后一个命令告诉shell首先在当前目录(名为
)中查找
,然后执行它。

正确用法是:

cc -o outputfile myFile.c
然后可以运行可执行文件:

./outputfile

删除
-c
并尝试:

cc first.c -o first
   ^^^^^^^ ^^^^^^^^
    input   output  
要运行:

./first

默认情况下,Make配置为识别某些文件扩展名,因此您只需执行以下操作:

make first
Make随后将找到
first.c
并生成
first
二进制可执行文件,并向您展示它使用的编译命令。请注意,要使其以合理的方式工作,您应该只有一个first.XXX源文件。此外,一旦您有多个源文件,就需要编写一个
Makefile
,但是只有一个源默认值就足够了

要运行生成的可执行文件,请执行以下操作

./first
需要
/
,因为在unix环境中,正常工作目录不在(也不应该在)路径中



哦,是的,正如其他人提到的:不要用
sudo
来处理这样的东西。如果您已经这样做了,您就不能像普通用户那样修改/删除这些文件,因为它们属于root用户。执行
ls-l
,它将显示文件的所有者。然后您可以执行
sudo chown yourusername.yoursername文件
文件
的所有者更改为
yourusername
(用户和文件组)。

但编译效果良好,但运行时显示错误为>权限被拒绝然后修复权限,但是,除非你不介意因为犯了一个愚蠢的错误而丢失你的机器,否则不要以root用户身份编程。这不值得。尽可能少地使用root。如果编译器按照您的要求用目标代码重写源代码,您会感到不安。将最后一个
.c
更改为
.o
。同样,$gcc也是这样工作的。c-o首先按enter键,然后以$/的形式运行可执行程序,然后再次按enter键