我在 linux 中开发了小型 c 应用程序。对于这个应用程序,我将 .h 文件放在 linux 标准路径 (/usr/include) 中。我再次编译相同的程序
输出:FATA ERROR : xyz.h(my own header file) not found
我是否需要更新 gcc 中的任何变量或解决此问题的方法
谢谢你
将头文件和你的文件放在同一目录下,编译时.c
使用-I.
gcc -I. main.c -o myprog
您不应该将头文件放在/usr/include
系统头文件中。
注意:您实际上并不需要,-I.
因为默认情况下会搜索当前目录,但是添加它并没有什么坏处。
由 include 指令指定的文件意味着位于编译器的搜索路径之一,在许多情况下使用 -I 选项指定(至少对于 gcc,其他编译器是否相同?)。搜索路径按照命令行中的定义顺序进行验证。
有两种包含指令:
#include "xyz.h"
)#include <xyz.h>
)IIRC,前者的默认和第一个搜索路径是工作目录。对于后者,它依赖于编译器,但通常是/usr/include/
.
根据您使用的包含指令,您应该为您的文件选择正确的位置。或者更好的是,将您的文件放在一个好的位置(比如与包含文件相同的位置),并在您的 gcc 命令中添加一个搜索路径。
您应该将头.h
文件与系统和存储库构建的头文件分开,这样您就不会破坏任何东西。
我建议在您的主目录中创建一个名为 include 的文件夹并将其添加到您的路径中,这样您就不必再担心它并且不需要-I/
标志