狂吃不胖木办法 发表于 2020-5-2 17:23:53

Linux出现不了可执行文件

# vi test
# gcc test.c -o test
gcc: test.c: No such file or directory
gcc: no input files
# ls
test

KevinHu 发表于 2020-5-2 17:58:10

文件名是test,不是test.c,所以Linux提示找不着test.c这个文件(要注意扩展名)

第一行应该这么写:
vi test.c

悠悠2264 发表于 2020-5-2 18:42:23

本帖最后由 悠悠2264 于 2020-5-3 10:26 编辑

扩展名不一致,前面是test,后面是test.c
c文件使用.c后缀,可执行文件使用.out后缀。

先重命名一下,然后再gcc编译(要不然gcc识别不了文件名)
mv ./test ./test.c
gcc test.c -o test.out

人造人 发表于 2020-5-2 20:04:59

悠悠2264 发表于 2020-5-2 18:42
扩展名不一致,前面是test,后面是test.c
建议c文件使用.c后缀,可执行文件使用.out后缀,当然不这样也可 ...

gcc test -o test.out

这条命令在我这边不能用,在你那边可以吗?

xl7613 发表于 2020-5-2 20:59:03

vi创建test,而不是test.c 。编译的是时候你是test.c

悠悠2264 发表于 2020-5-2 22:46:54

本帖最后由 悠悠2264 于 2020-5-2 22:48 编辑

人造人 发表于 2020-5-2 20:04
这条命令在我这边不能用,在你那边可以吗?

可以的
如果提示:bush not found则需要安装gcc,执行以下命令即可:
yum -y install gcc gcc-c++ kernel-devel

如果提示No such file or directory则是文件名错误,请填写正确的文件名

如果什么都没提示,就表示编译成功了,执行即可:
./文件名(-o参数指定的)

人造人 发表于 2020-5-3 06:27:19

悠悠2264 发表于 2020-5-2 22:46
可以的
如果提示:bush not found则需要安装gcc,执行以下命令即可:



gcc提示 file not recognized: File format not recognized

$ ls
main.c
$ cat main.c
#include <stdio.h>

int main(void) {
    printf("hello world!\n");
    return 0;
}
$ gcc -o main main.c
$ ls
main.cmain.exe
$ cp main.c test
$ ls
main.cmain.exetest
$ gcc -o test.out test
test: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
$ ls
main.cmain.exetest
$

悠悠2264 发表于 2020-5-3 10:26:51

人造人 发表于 2020-5-3 06:27
gcc提示 file not recognized: File format not recognized

看来还是要以.c后缀才能被编译{:10_266:}

mv ./test ./test.c
gcc test.c -o test.out

人造人 发表于 2020-5-3 11:49:51

悠悠2264 发表于 2020-5-3 10:26
看来还是要以.c后缀才能被编译

页: [1]
查看完整版本: Linux出现不了可执行文件