#include“头文件“的相对路径是相对谁的路径????

c文件和头文件不在同一目录,且所有的头文件(自编的头文件)均集中放在Include文件夹下,在include“头文件”时,相对路径是指相对谁的路径,比如是相对工程文件的路径,还是相对与其对应的C文件的路径,又或者是根据所建立的工程添加的文件目录树确定,又或者相对IDE工作路径,IDE的工作路径又是指什么?解惑啊,拜托各位了,我只有70积分,把我教明白了,当即双手送上。

vc中使用#include命令包含头文件所搜寻的路径,vc中的三种路径:

1、系统路径

系统路径在vc中是"Tools->Options->Directories"中"Include files"指定的路径。

打开此对话框会发现默认有这几条路径:

C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE

C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE

2、当前路径

当前路径是指vc工程中工程文件所在的路径,即.dsw文件所在路径。

3、 附加路径

附加路径是指在"Project->Settings->C/C++->Preprocessor->Additional include directories "中指定的路径。

此路径默认为空,我们可以在此处填写需要路径,比如:在此处填入"C:\123\",(不要引号),那么附加路径就会变成"C:\123\" 。

上面的1,3路径,我们均可以自己编辑。在编辑过程中,可以使用绝对路径,也可以使用相对路径。

比如,在添加系统路径时,可以这样填写:

.\SRC\  这样写表示,当前目录中的SRC文件夹;

..\SRC\  这样写表示,当前目录的上一层目录中SRC文件夹;

...\SRC\ 这样写表示,当前目录下  ..\SRC\\ 路径,当然这种写法已经和第一种重叠了。

这种相对路径的写法,vc会自动帮我们转化为绝对路径。

在添加附加路径时,其相对路径的写法和系统路径是一致的。

在vc中使用#include 命令,有三种形式:

1 #include <file.h>

vc执行这条指令时,它会在系统目录中去查找 file.h 文件。

在此条码命令中,vc不会去当前路径和附加路径中查找文件。

2 #include "file.h"

vc执行这条指令时,它首先会搜索附加路径,如果没有则会搜索系统路径,如果还没有则会去搜索当前路径。

3、#include "directory\file.h"

vc执行这条指令时,它会去指定的路径去查找文件,如果没找到,它不会继续查找。 

#include”xxx.h”

把include文件夹(里面是某个库的头文件)拷到自己的项目中,添加头文件时需要使用#include”include\xxx.h”方式,如果打算使用#include”xxx.h”方式。

解决方法:

项目属性->C++>常规->附加包含目录:$(ProjectDir)\include

添加类库,在项目属性->链接器>常规->附加库目录:$(ProjectDir)\lib 

其中:\$(ProjectDir)代表你的项目所在目录:x:\…\projectname

所有宏定义可以在“附加包含目录”或者“附加库目录”编辑界面,点击宏“(M)>>”查看

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>;

2、#include"文件名"

如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:

#include&lt;math.h&gt;//一些数学函数的原型,以及相关的类型和宏

如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-03

1、用KDevelop打开工程。选择一个文件夹可以按照工程打开。如果之前打开过,也可以直接选择特定(比如kdev4)后缀的文件打开一个工程。

2、打开工程后,把鼠标放在代码上,能够显示出有关信息,定义位置等。如果不行则需要寻找未读取的#include并添加新的路径。

3、把鼠标放在预处理失败的#include上,可以查看当前已有的include路径。若要添加,点击解决。

4、在弹出的设置自定义包含路径中,选择存储目录,然后在下面自定义包含路径中,每行一个。点击OK。

5、自定义路径保存的文件默认被筛选隐藏。若要查看,可以点击工程->打开配置->Project Filter,添加新的包含或者排除。

6、然后找到路径下的.kdv_include_paths文本文件,可以查看已添加路径。

本回答被网友采纳
第2个回答  推荐于2017-09-14
是相对工程文件的路径,
你可以把stdAfx.h分别复制到放到各个比如相对工程文件的路径,相对与其对应的C文件的路径,又或者是根据所建立的工程添加的文件目录树,写句#include ".\stdAfx.h" (这个代表在当前目录中找文件stdAfx.h)在\stdAfx.h处右键“Open document #include ".\stdAfx.h" ”打开一下,看看打开的是哪个里面的文件就知道了。本回答被提问者采纳
第3个回答  2011-11-10
1。用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。
用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。
2。如果你用的是#include “...h” 编译器优先从你.c所在路径查找是否有该.h文件,如果有,引用;如果没有,它回去标准库中找,是否存在该.h文件;
#include “...h”,如果是自己写的,又不在.c的同一个路径中,可以使用绝对路径:#include “D:\\...h”
第4个回答  推荐于2017-10-10
是相对于当前文件的。
上一级目录加上 ../ ,当遇到上上。。。个目录时则对应个数 ../../。。。
而 ./ 表示当前目录,可加可不加。