/ usr / include linux中的新.h文件

时间:2012-11-07 15:22:46

标签: c linux gcc

我在linux中开发了小型c应用程序。对于这个应用程序,我将.h文件放入 linux标准路径(/ usr / include)。我再次编译同一个程序

输出: FATA错误:找不到xyz.h(我自己的头文件)

我是否需要更新gcc中的任何变量或解决此问题的方法

谢谢

3 个答案:

答案 0 :(得分:6)

将头文件放在与.c文件相同的目录中,并在编译时使用-I.

gcc -I. main.c -o myprog

您不应将头文件放在/usr/include中,而是用于系统标题。

注意:您实际上并不需要-I.,因为默认情况下会搜索当前目录,但是添加它并没有什么坏处。

答案 1 :(得分:0)

include指令指定的文件应位于编译器的一个搜索路径中,在许多情况下使用-I选项指定(至少对于gcc,对于其他编译器是否相同?)。搜索路径按命令行中的定义顺序进行验证。

有两种include指令:

  • 双引号(#include "xyz.h"
  • 尖括号(#include <xyz.h>

IIRC,前者的默认和第一个搜索路径是工作目录。对于后者,它依赖于编译器,但通常是/usr/include/

根据您使用的include指令,您应该为文件选择正确的位置。或者更好,将您的文件放在一个好位置(比如包含文件的位置),并为您的gcc命令添加一个搜索路径。

答案 2 :(得分:-1)

您应该将标头.h文件与系统和存储库构建的标头分开,这样就不会破坏任何内容。

我建议您在主目录中创建一个名为include的文件夹,然后将其添加到您的路径中,这样您再也不必担心它而不需要-I/标记