包含路径目录

时间:2016-03-12 04:46:57

标签: c++

我对如何将头文件添加到C ++项目感到困惑。通常,当我尝试使用#include“genericheader.h”时,它表示无法找到该文件。但是,该文件通常存在,只是路径没有正确写入 所以我的问题是,通过使用#include“genericheader.h”,编译器在哪里寻找这个文件?它是否在试图包含它的文件的当前目录中查找?或者它是否依赖于诸如IDE之类的东西?

如果我正在尝试包含头文件,通常最好将它放在当前文件的目录中并尝试包含它吗?

道歉的问题。谢谢!

3 个答案:

答案 0 :(得分:2)

您正在使用引用形式的include指令,它按以下顺序搜索包含文件:

  1. 与包含#include语句的文件位于同一目录中。
  2. 在当前打开的包含文件的目录中,按照打开它们的相反顺序。搜索从父包含文件的目录开始,并继续向上遍历任何祖父包含文件的目录。
  3. 沿着每个/ I编译器选项指定的路径。
  4. 沿着INCLUDE环境变量指定的路径。
  5. 进一步阅读: https://msdn.microsoft.com/en-us/library/36k2cdd4.aspx

答案 1 :(得分:1)

有两种类型的标题。编译器库中的标头和项目中的标头。是否使用<>或""告诉编译器在哪里查找头文件。但是,如果您只使用<>,编译器将无法找到它们。 Buttom示例显示了它的工作原理:

#include <iostream> // library header
#include "helloWorld.h" //header in project
#include "../helloworld/headers/helloworld.h" //path to header in project
#include </path/to/custom/header/headerFile.h>
using namespace std;

int main()
{
   cout << "Hello World" << endl; 

   return 0;
}

答案 2 :(得分:1)

如果您使用#include "genericheader.h",则应将文件genericheader.h放在当前目录中 查看here了解更多信息。