设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 706|回复: 5
打印 上一主题 下一主题

[讨论]程序中的目录结构和包含方法

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 23:56:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就上图的目录结构,我是这样包含文件的(VC6.0):
(1) 在Tools/Options/Directories中目录指到Public这一层.
(2)头文件包含时,我是这样包含的:
#include "../public/lib1/file.h"

我这种方法的第一步感觉比较麻烦,而且指向的是绝对路径,移植性差,自己都觉得不可取。
如果没有第一步,在头文件包含时又不知怎样写才好。

附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册
2#
发表于 2009-11-3 23:56:15 | 只看该作者
当然,你所说的目录是你这个工程项目特有的,放到Tools/Options/Directories中是不合理的,正常的情况应该放到project->setting->c/c++->preprocess->Additional include directories中,用相对路径,如../public/lib1
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 23:56:17 | 只看该作者
非常感谢aogun版主,那么可否不在setting中指定包含目录而直接在文件中包含呢?
这时的相对路径该如何写呢?
还想请教一下aogun版主, ./public/lib1和../public/lib1 这两种写法有什么不同?
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 23:56:18 | 只看该作者
经过艰难的尝试,发现这样一个规律(自以为是规律,而且编译通过):
(1) 在Public目录下的的文件,如果要包含Public目录下的文件,则用这样的相对路径:
#include "../lib1/file.h"
(2) 在DirTest目录下的文件,如果要包含Public目录下的文件,则用这们的相对路径:
#include "../Public/lib1/file.h"
唉,可惜想不出理论依据
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 23:56:19 | 只看该作者
抱歉,最近比较忙,论坛上得比较少
./是指向当前目录,../是指向当前目录的上一级目录
直接包含在文件中当然可以,但是不推荐这么做。这样做对于大型项目头文件目录结构的组织会很不方便
一般情况下项目独有的include目录都是写在setting中的,setting中的相对路径是相对工程文件*.dsp文件所在目录而定的
在你举的例子中,setting中的目录应该写为../Public/lib1,这样别的文件在包含lib1下的头文件时就可以不写路径了
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 23:56:21 | 只看该作者
呵呵,没关系,非常感谢你的热情指导!现在已经理解了。谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 21:40 , Processed in 0.105536 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

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