我是Ubuntu的新手。我想在Ubuntu上运行c程序。 我已经安装了build-essential。 现在我尝试使用以下命令来运行程序..
sudo gedit first.c
然后键入基本的hello world程序。然后...
cc -c first.c -o first.c
但是在这个命令上它显示错误为
没有输入文件。
并告诉我如何运行此程序。
答案 0 :(得分:3)
首先,您不必以root身份编辑文件。这是一个坏主意。
第cc -c first.c -o first.c
行会覆盖您不想要的C-File
cc first.c -o first
然后你想运行该程序 你可以用
来做到这一点./first
答案 1 :(得分:0)
输出文件中不需要.c
。即。
cc -c first.c -o first
编辑:哎呀。您也不想要-c
cc -o first first.c
答案 2 :(得分:0)
该编译命令行应该有效。 然而它将覆盖您的源文件。
-o
选项告诉编译器输出文件的名称,如果您将其命名为与源文件相同,则将覆盖该文件。
传递给编译器的第一个标志-c
告诉编译器生成目标文件。稍后链接器可以使用这些目标文件链接其他目标文件以创建最终的可执行程序。但是,它不会创建一个可以运行的程序。
要从单个源文件创建可执行程序,请执行以下操作:
$ cc first.c -o first
这将创建一个名为first
的可执行程序(如果没有错误)。
然后运行这个程序:
$ ./first
这最后一个命令告诉shell在当前目录(名为first
)中查找.
,然后执行它。
答案 3 :(得分:0)
正确用法是:
cc -o outputfile myFile.c
然后你可以运行可执行文件:
./outputfile
答案 4 :(得分:0)
删除-c
并尝试:
cc first.c -o first
^^^^^^^ ^^^^^^^^
input output
运行:
./first
答案 5 :(得分:0)
Make配置为默认识别某些文件扩展名,因此您只需执行以下操作:
make first
然后 Make会找到first.c
并生成first
二进制可执行文件,并显示它使用的编译命令。请注意,要使其以合理的方式工作,您应该只有一个first.XXX源文件。此外,一旦您有多个源文件,您需要编写Makefile
,但只有一个源默认值就足够了。
要运行生成的可执行文件,请执行
./first
需要 ./
,因为在unix环境中,通常工作目录不在(也不应该)在PATH中。
哦,是的,正如其他人所说的:不要将sudo
用于这样的事情。如果您已经这样做了,则不能像普通用户那样修改/删除这些文件,因为它们归root所有。 ls -l
,它会显示文件的所有者。然后,您可以sudo chown yourusername.yoursername file
更改file
的所有者,使其归yourusername
所有(用户和文件组)。