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

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

是相对工程文件的路径,
你可以把stdAfx.h分别复制到放到各个比如相对工程文件的路径,相对与其对应的C文件的路径,又或者是根据所建立的工程添加的文件目录树,写句#include ".\stdAfx.h"  (这个代表在当前目录中找文件stdAfx.h)在\stdAfx.h处右键“Open document #include ".\stdAfx.h" ”打开一下,看看打开的是哪个里面的文件就知道了
1。用 #include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 
用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。
2。如果你用的是#include “...h” 编译器优先从你.c所在路径查找是否有该.h文件,如果有,引用;如果没有,它回去标准库中找,是否存在该.h文件;
#include “...h”,如果是自己写的,又不在.c的同一个路径中,可以使用 绝对路径 :#include “D:\\...h”



VC include 路径解析

今天发现一个不错的帖子。转到自己的博客,收藏。

 

要了解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文件所在路径。

网上有很多朋友说,当前路径是指.cpp文件所在路径,经过测试,这个说法也是正确的。但是使用vc编译时,是不正确的。

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

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”方式。

解决方法:

  1. 项目属性->C++>常规->附加包含目录:$(ProjectDir)\include
  2. 添加类库,在项目属性->链接器>常规->附加库目录:$(ProjectDir)\lib 
    其中:\$(ProjectDir)代表你的项目所在目录:x:\…\projectname

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




你可能感兴趣的:(MFC/VS)