我有一个主目录A
有两个子目录B
和C
目录B
包含头文件structures.c
:
#ifndef __STRUCTURES_H #define __STRUCTURES_H typedef struct __stud_ent__ { char name[20]; int roll_num; }stud; #endif
目录C
包含main.c
代码:
#include #include #include int main() { stud *value; value = malloc(sizeof(stud)); free (value); printf("working n"); return 0; }
但是我收到一个错误:
main.c:3:24: error: structures.h: No such file or directory main.c: In function 'main': main.c:6: error: 'stud' undeclared (first use in this function) main.c:6: error: (Each undeclared identifier is reported only once main.c:6: error: for each function it appears in.) main.c:6: error: 'value' undeclared (first use in this function)
将structures.h
文件包含到main.c
的正确方法是什么?
当引用相对于c文件的头文件时,你应该使用#include "path/to/header.h"
表单#include
仅用于内部标头或显式添加的目录(在带有-I
选项的gcc中)。
写
#include "../b/structure.h"
代替
#include
然后进入c目录并编译你的main.c
gcc main.c
如果您处理Makefile项目或只是从命令行运行代码,请使用
gcc -IC main.c
其中-I
选项将您的C
目录添加到要搜索头文件的目录列表中,这样您就可以在项目的任何位置使用#include "structures.h"
。
如果要使用命令行参数,则可以给gcc -idirafter ../b/ main.c
那么你不必在你的程序中做任何事情。
需要了解更多c/c++开发分享包括来自另一个目录的头文件,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享包括来自另一个目录的头文件相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979898.html