common.h:没有这样的文件或目录(Ubuntu gcc)

时间:2016-08-31 05:00:13

标签: c++ ubuntu gcc

当我尝试编译这样的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”

1 个答案:

答案 0 :(得分:0)

common.h不是C标准库的一部分,它是第三方头文件(是你的吗?)。

您需要将common.h放入与您发布的代码相同的目录中,否则编译器将无法在没有帮助的情况下找到它。

通过“一些帮助”我的意思是包含路径。当您包含文件时,编译器将在它知道的预定义位置以及当前目录(它现在正在编译的文件的目录)中搜索它,如果您使用引号("somefile.h")而不是尖括号(<somefile.h>)。

所以你要么把标题放在其中一个地方,要么在gcc中用-I标志定义一个新标题(一个自定义包含目录),如下所示:

gcc -Ipath/to/your/dir/here myfile.c