C ++:code :: block无法识别包含的标头

时间:2013-04-30 21:04:32

标签: c++ header compiler-errors include codeblocks

我在C ++中获得了以下代码:

in main():

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
cout << function(1) << endl;

return 0;
}

在我的源代码文件中:

#include <math.h>

int function(int number)
{
int value(number + 2);

return value;
}

在我的标题“math.h”中:

#ifndef MATH_H_INCLUDED
#define MATH_H_INCLUDED

int function(int number);

#endif // MATH_H_INCLUDED

当我尝试编译它时,我收到错误:“函数”未在此范围内声明

我哪里错了?

4 个答案:

答案 0 :(得分:4)

<math.h>是一个标准的头文件,#include <math.h>的使用使它更喜欢当前目录上的标准头文件路径,除非你给当前目录优先权(使用{{1} }}切换以指定包含路径,作为示例)。

如果使用-I,编译器将首先搜索当前目录。或者,您可以将头文件重命名为与#include "math.h"不同的内容。

答案 1 :(得分:1)

#include <…>&lt; ... &gt; 表示“在包含路径中搜索”。

#include "…" ... 表示“在实际路径中搜索,如果找不到标题,则在包含路径中搜索”。

答案 2 :(得分:0)

问题是#include <math.h>搜索标准库的版本,而不是你的版本。使用双引号代替尖括号:

#include "math.h"

答案 3 :(得分:-1)

错误说“功能”未在此范围内声明 - 我注意到在我怀疑你打算将其称为“功能”的所有用途中,你将其拼写为带有“o”的“fonction”。仔细检查您在使用和声明之间是否有一致的拼写。