当我尝试编译这样的C程序时:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <sys/time.h>
4 #include <assert.h>
5 #include "common.h"
6
7 int
8 main(int argc, char *argv[])
9 {
10 if (argc != 2) {
11 fprintf(stderr, "usage: cpu <string>\n");
12 exit(1);
13 }
14 char *str = argv[1];
15 while (1) {
16 Spin(1);
17 printf("%s\n", str);
18 }
19 return 0;
20 }
我收到了错误
CPU.c:5:19: fatal error: common.h: No such file or directory
我已经更新了我的gcc编译器,所以我无法弄清楚为什么会错过“Common.h”
答案 0 :(得分:0)
common.h
不是C标准库的一部分,它是第三方头文件(是你的吗?)。
您需要将common.h
放入与您发布的代码相同的目录中,否则编译器将无法在没有帮助的情况下找到它。
通过“一些帮助”我的意思是包含路径。当您包含文件时,编译器将在它知道的预定义位置以及当前目录(它现在正在编译的文件的目录)中搜索它,如果您使用引号("somefile.h"
)而不是尖括号(<somefile.h>
)。
所以你要么把标题放在其中一个地方,要么在gcc中用-I
标志定义一个新标题(一个自定义包含目录),如下所示:
gcc -Ipath/to/your/dir/here myfile.c