为什么编译器找不到头文件?

时间:2014-11-06 07:05:46

标签: c header

我在linux环境中工作。在我当前的目录中,当我执行ls命令时,这就是我得到的

enter image description here

在repo.c中,我有这行代码

#include <battleship.h>

然而,当我尝试使用此命令编译和创建可执行文件时(也链接到库文件battleship.c)

gcc repo.c -lbattleship.c

我收到此错误

“repo.c:10:24:错误battleship.h:没有这样的文件或目录”

有谁知道为什么编译器找不到头文件?我把它放在与主C文件相同的目录中

2 个答案:

答案 0 :(得分:1)

# include<> 

此变体用于包含系统头文件。

#include ""

这用于包括用户创建的头文件。

所以尝试使用

#include "battleship.h"

答案 1 :(得分:0)

我猜是以下命令编译项目:

gcc -o battleship repo.c battleship.c 

从理论上讲,标题文件battleship.h应该包含在battleship.c(或repo.c)中,如此(使用引号而不是本地包含的括号):

#include "battleship.h"