免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: goingstudy
打印 上一主题 下一主题

[实践] 头文件的包含问题 [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-16 17:28 |显示全部楼层 |倒序浏览
本帖最后由 goingstudy 于 2014-06-16 17:31 编辑

我想改一个开源项目的代码,在源代码下有这样的目录
  D1/, D2/, D3/ ... , include/
D1, D2, D3 目录下有.c 文件, include有A/, B/ 两个目录, A,B下都是头文件.h
我通过看代码发现,D1,D2,D3下的C文件引用头文件时都是#include <A/**.h>, #include <B/**.h>这种格式,
现在我想增加自己的功能需要在A下的某个头文件中引用B中的某个头文件,但是我这样写#include <B/**.h>总是报错找不到这个文件
请问这样应该怎样做?

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
2 [报告]
发表于 2014-06-16 17:36 |显示全部楼层
回复 2# qxhgd
GFLAGS不是用来设定编译时的选项的?不是很懂,应该怎么弄?

   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
3 [报告]
发表于 2014-06-16 17:44 |显示全部楼层
回复 4# qxhgd
但是我觉的是这样:
D1,D2, D3这几个目录引用include/A, include/B下的头文件时能够找到,说明A,B下的头文件路径已经可以被都到,但是A中的.h 引用B中的.h为什么就不行?

   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
4 [报告]
发表于 2014-06-16 17:48 |显示全部楼层
回复 6# qxhgd
试过了,因为引用的那个头文件还会引用B下的头文件,所以那样做后,会有其他的文件说是找不到

   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
5 [报告]
发表于 2014-06-17 08:54 |显示全部楼层
回复 8# humjb_1983
B中的引用B中的也是用了#include <B/*.h>这种形式
另外,试了一下,发现B中的引用A中的是没问题的,但是A中的引用B中的就有问题,不知道这是怎么设定的

   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
6 [报告]
发表于 2014-06-17 09:49 |显示全部楼层
gcc -ansi -include stdint.h -Wall -W -Werror -S -o /dev/null -xc $i
发现是在执行这条语句时出的错, $i是代表的A目录下的.h文件, 这条语句是不是会把之前设定的路径覆盖掉?

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
7 [报告]
发表于 2014-06-17 14:27 |显示全部楼层
回复 11# humjb_1983
应该不需要,但是原代码中确实用的是<B/*.h>的形式

   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
8 [报告]
发表于 2014-06-17 15:21 |显示全部楼层
回复 13# humjb_1983

为什么要改那里?与那里没关系吧?
   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-20 06:20:00
9 [报告]
发表于 2014-06-17 15:37 |显示全部楼层
回复 15# humjb_1983
我是在A中的头文件引用B中的文件时才出问题的,B中的文件引用自己目录下的文件用了#include <B/*.h>的形式如果设置好路径的话,
应该也是可以的,所以我觉得修改改B中文件引用自己目录下的引用为#include <*.h>应该是没必要的

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP