我正在尝试从 vim 和 vi 编译并运行 ac 项目
#include<stdio.h>
int main(void)
{
printf("Hello! This is a test prgoram.\n");
return 0;
}
我得到这个输出
madona@madona-Java ~ $ vi demo.c
[No write since last change]
make: *** No targets specified and no makefile found. Stop.
Press ENTER or type command to continue
[No write since last change]
gcc: error: demo.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
shell returned 4
使用这个后:!gcc demo.c
。我究竟做错了什么?
当我尝试运行时也遇到了这个问题:
gcc -o demo demo.c
gcc: error: demo.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
答案1
只因你跑了
vi demo.c
并不意味着demo.c
创建了文件。直到您第一次将缓冲区写入磁盘时才会创建它。
只需在编译之前将缓冲区写入磁盘即可:
:w
您看到的消息证实了这一点[No write since last change]
。此消息意味着缓冲区已更改(因为您创建了名为 的缓冲区demo.c
),但修改后未写入磁盘。