| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 809 人关注过本帖
标题:[讨论]程序中的目录结构和包含方法
只看楼主 加入收藏
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
收藏
 问题点数:0 回复次数:5 
[讨论]程序中的目录结构和包含方法
图片附件: 游客没有浏览图片的权限,请 登录注册


就上图的目录结构,我是这样包含文件的(VC6.0):
(1) 在Tools/Options/Directories中目录指到Public这一层.
(2)头文件包含时,我是这样包含的:
#include "../public/lib1/file.h"

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

搜索更多相关主题的帖子: 目录结构 文件 讨论 Public 
2006-09-13 15:50
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
当然,你所说的目录是你这个工程项目特有的,放到Tools/Options/Directories中是不合理的,正常的情况应该放到project->setting->c/c++->preprocess->Additional include directories中,用相对路径,如../public/lib1

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-09-13 17:06
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
收藏
得分:0 
非常感谢aogun版主,那么可否不在setting中指定包含目录而直接在文件中包含呢?
这时的相对路径该如何写呢?
还想请教一下aogun版主, ./public/lib1和../public/lib1 这两种写法有什么不同?

谷底深深行 ,峰顶漫漫步......@_@
2006-09-13 17:18
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
收藏
得分:0 

经过艰难的尝试,发现这样一个规律(自以为是规律,而且编译通过):
(1) 在Public目录下的的文件,如果要包含Public目录下的文件,则用这样的相对路径:
#include "../lib1/file.h"
(2) 在DirTest目录下的文件,如果要包含Public目录下的文件,则用这们的相对路径:
#include "../Public/lib1/file.h"
唉,可惜想不出理论依据


谷底深深行 ,峰顶漫漫步......@_@
2006-09-13 17:59
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
抱歉,最近比较忙,论坛上得比较少
./是指向当前目录,../是指向当前目录的上一级目录
直接包含在文件中当然可以,但是不推荐这么做。这样做对于大型项目头文件目录结构的组织会很不方便
一般情况下项目独有的include目录都是写在setting中的,setting中的相对路径是相对工程文件*.dsp文件所在目录而定的
在你举的例子中,setting中的目录应该写为../Public/lib1,这样别的文件在包含lib1下的头文件时就可以不写路径了

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-09-14 13:29
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
收藏
得分:0 
呵呵,没关系,非常感谢你的热情指导!现在已经理解了。谢谢!

谷底深深行 ,峰顶漫漫步......@_@
2006-09-14 17:37
快速回复:[讨论]程序中的目录结构和包含方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021065 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved