LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 975|回复: 3

弱弱地问一下,源代码和头文件的组织问题.谢谢!

[复制链接]
发表于 2008-2-17 17:46:20 | 显示全部楼层 |阅读模式
如果在Linux下开发,源代码和头文件分别在src,inc下面,而且src下面有一个叫core,inc下面也有一个同名的目录.假设core下面有一个文件叫main.c,它有一行是
  1. #include "inc/core/defs.h"
复制代码
.
请问一下,应该怎样才能在编译main.c时,不会报头文件不存在的错误.谢谢!
发表于 2008-2-17 22:10:44 | 显示全部楼层
首先要明白 C 中如何确定头文件的查找位置:
<> 包含的头文件通过查找系统的 INCLUDE 路径;
"" 包含的头文件通过查找该源文件所在的路径;

所以如果你要使用 "" 来包含头文件,应该假设从当前目录开始,使用 "../inc/core/defs.h" 。但推荐使用 <core/defs.h> ,并通过编译参数传递将 ${srcdir}/inc 添加到系统搜索路径,比如(假设这个源文件叫 src.c):
  1. $ gcc -I../inc -c src.c -o src.o
复制代码
使用 autotools 时会有变量 top_srcdir 来表示代码的根目录,这时候只需要 -I${top_srcdir}/inc 就行了
回复 支持 反对

使用道具 举报

发表于 2008-2-17 22:11:02 | 显示全部楼层
如果,include 后用“” 则编译时编译器会从当前目录搜索头文件。
看看 当前目录/inc/core/defs.h 是不是你需要的头文件的正确路径
回复 支持 反对

使用道具 举报

发表于 2008-2-17 22:13:08 | 显示全部楼层
发完才看到楼上的帖子 :-)
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表