Ubuntu的终端用GCC编译C源代码提示找不到命令?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu的终端用GCC编译C源代码提示找不到命令?相关的知识,希望对你有一定的参考价值。

我装的是Ubuntu最新版本12.10,GCC和GCC所需基本库都已经安装过的
我试过了的但编译C源代码文件的时候还是提示未找到命令是怎么回事?
别跟我提权限我开了sudo权限试过了的,结果是一样的
不了解什么是未找到命令的还是不要来愰我眼了。

文件名有空格

1、你可以将文件名改为没有空格而是连在一起的
比如改为 confusedrecruitingpolicy.c
然后用命令进行编译
gcc -c confusedrecruitingpolicy.c
2、不用改名但要加上 \ 表示你的输入还没结束,不然默认参数是以空格为分隔符的
试一下这样:
gcc -c confused\ recruiting\ policy.c追问

与名称无关的,我用code:blocks就可以正常编译和链接

追答

你用codeblocks的时候他也是调用命令gcc的,只是codeblocks的开发人员肯定也考虑到了 用户的文件名会有空格,对于这种情况调用命令的时候可定会经过一定处理

我看到你的图片了,
你第一次输入的是gccconfusedrecruitingpolicy.c
中间没有任何空格,所以终端就认为你输入的是一条命令,
而这个命令是“ gcc-cconfusedrecruitingpolicy.c ”
linux下自然没有这么一条奇葩的命令的

第二次你输入的是which gcc就可以看到在系统path中gcc所在的位置,从显示来看你的gcc在path中的/usr/bin/下,也就是说你输入gcc执行的是就是/usr/bin/gcc而不是其他目录的gcc

第三次你输入的是gcc -c confused recruiting policy.c
中间有三个空格,终端将你命令的意图理解为
用gcc去处理三个文件confused、recruiting、policy.c

-c表示处理方式是编译而不链接
报错的原因是你当前目录下没有这三个文件confused、recruiting、policy.c

第四次输入跟第一次输入就有异曲同工之妙了,只是加了一个-c而已

如果你不愿意修改文件名的话,加上 \ 吧,真的可以解决你问题,你为什么不先试试呢。很明显你是新手,我原谅你的无知,因为我曾经也是这么过来的,现在我也只算是个资深菜鸟而已,废话不多说,复制粘贴下面的命令到终端执行,你会看到你想要的效果:
gcc -c confused\ recruiting\ policy.c

追问

你真的懂Linux么?懂编程么?

追答

大哥,麻烦你复制粘贴好吗?
三个\ 后面都有一个空格的!!!!!!!
gcc后面紧接着也有空格!!!!!!

追问

我会告诉你我试过才会回你的么?呵呵

若是名称错误提示会说“未找到命令么?呵呵,”没有输入文件“那才是名称错误,明白?

追答

神啊,难道你不知道-c 之后也要空格的吗!!!
gcc 空格 -c 空格 confused\ recruiting\ policy.c
你这是要气死我这条老命吗?我真的要骂人了,你知道吗?你特么怎么这么……

唉,突然意识到,事情可以没这么复杂的,你完全可以用自动补全来的

你输入gcc 空格 -c 空格 conf然后按那个Tab键(或者叫制表符按键)就会自动补全了

参考技术A 前面的那位朋友已经回答得很清楚了!我不知道“confusedrecruitingpolicy.c”这个.c的文档名有木有空格在里面,但是取这样一个文档名确实不应该。那个.c源文件在主文件夹下了,按理说用命令“gcc -c .c源文件名”就可以了!注意命令参数之间要有空格 ......追问

笑尿了,竟然来了个文档名称不应该的。看不懂图么?也好意思说个JB

参考技术B 看不下下去了,回答的都说这么清楚,提问者连什么是命令,什么是参数,什么时候要空格都不懂,提问者就一个43(麻烦提问者将[32+11]转换成16进制)

感情你应该是学计算机的,我觉得你真心不适合这行,转吧追问

又跑来一装A和C中间的那个的了,带笔,不解释。

在ubuntu系统中如何用GCC编译运行一个C程序?

以前没接触过ubuntu系统,用wubi装了一个,在终端上检测gcc、g++ 、vim什么的都已安装,并按照网上说的在vim中编写一个简单的c程序后按ESC再按大写Z两次保存退出,可在gcc中就是没法编译运行,不是提示不存在该命令,就是什么有错误等等,试了N次还是不行,看网上说的挺简单的啊!望高手指点,谢谢!

1、确定安装了gcc编译器后,接下来用vim编辑一个c文件。

2、下图是我在c文件中写入的内容,就简单打印一条语句。

3、写好c文件后,用ls命令查看该文件是否存在。

4、确定c文件存在后,使用命令gcc c文件名 -o 生成的可执行文件名(例:gcc demo.c -o demo)。输入编译命令后,如果没显示什么信息,就意味编译成功了。

5、编译成功后,再用ls命令查看一下可执行文件是否有生成。

6、最后再运行一下可执行文件,可以看到,正确输出了一条语句。

参考技术A 1,vi test.c <----编辑
2,gcc -Wall test.c -o target <----编译
3,./target <----运行

参考技术B

gcc是一个编译器,可以将C程序编译为可执行程序。

gcc命令选项

-o:指定生成的输出文件。
-E:仅执行编译预处理。
-S:将C代码转换为汇编代码。
-wall:显示警告信息,把警告信息当作错误输出。
-c:仅执行编译操作,不进行连接操作。

用gcc编译源文件:

第一种方式:一步到位

gcc -o main main.c       //将main.c直接编译为可执行程序main
./main                    //运行可执行程
gcc -o main main.c module.c         //多个源文件情况下
./main

第二种方式:先编译后链接

gcc -c main.o main.c    //将main.c编译为中间文件main.o
gcc -o main main.o      //将main.o编译为可执行文件main
./main                  //运行可执行程序
//多个源文件的情况
gcc -c main.o main.c
gcc -c module.o module.c
gcc -o main main.o module.o
./main

一般情况下,多文件的情况使用makefile配合gcc来编译会更方便。

参考技术C 用geany吧。这个IDE很傻瓜,刚开始没必要玩那么复杂的VIM 参考技术D 编译: gcc 源代码文件名 -o 可执行文件名字 注意每一个之间都有空格运行: ./文件名

以上是关于Ubuntu的终端用GCC编译C源代码提示找不到命令?的主要内容,如果未能解决你的问题,请参考以下文章

gcc编译器究竟怎么打开?我竟然在gcc的安装文件夹中找不到gcc的打开文件?

ubuntu下怎么用gcc编译C代码啊?

在ubuntu系统中如何用GCC编译运行一个C程序?

arm-linux-gcc 编译hello.c提示:hello.c:1:21:stdio.h没有文件或目录

为啥使用gcc编译时总显示找不到文件

问一下,为啥代码在RedHat里面gcc编译出错,提示找不到module.h等头文件