4

编辑:问题的解决方案如下:http ://www.jusuchyne.com/codingchyne/2011/03/codeblocks-failed-to-find-the-header-file/

它不会编译,我有以下错误:

  • foo.h 目录中没有这样的文件;
  • foo 尚未声明;
  • num 未在此范围内声明
  • foo 不是类或命名空间

这很奇怪,至少可以说,因为我只是使用了代码块“创建一个新类”,然后将它添加到这个项目中。这是源代码:

标题:

#ifndef FOO_H
#define FOO_H
class foo
{
    private:
    int num;
    public:
        foo();
    void set_num(int set);
    int get_num();
};
#endif // FOO_H

共产党

#include "foo.h"

foo::foo()
{
    num = 10;
}

void foo :: set_num(int set)
{
    num = set;
}

int foo :: get_num()
{
    return num;
}

忽略 calss 本身和它的作用,问题是即使我使用了默认的代码块类创建设置,它也无法编译。

错误:

C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|1|error: foo.h: No such file or directory|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|3|error: 'foo' has not been declared|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|3|error: ISO C++ forbids declaration of 'foo' with no type|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp||In function 'int foo()':|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|5|error: 'num' was not declared in this scope|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|6|warning: no return statement in function returning non-void|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|8|error: 'foo' is not a class or namespace|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp||In function 'void set_num(int)':|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|10|error: 'num' was not declared in this scope|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|13|error: 'foo' is not a class or namespace|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp||In function 'int get_num()':|
C:\Users\SameTime\Desktop\CodeBLocks\ASDD\src\foo.cpp|15|error: 'num' was not declared in this scope|
||=== Build finished: 8 errors, 1 warnings ===|
4

3 回答 3

2

If the header is not in the same directory you must either specify the path in the include command, or you must add -I Path directive to your makefile or include settings.

Maybe this link also helps as codeblock seems to have problems.

http://www.jusuchyne.com/codingchyne/2011/03/codeblocks-failed-to-find-the-header-file/

于 2013-05-03T16:15:09.297 回答
2

这应该是一个评论,但我还没有 50 个代表......

您可以在命令行中导航到源目录并尝试手动编译以确保错误不在 IDE 上吗?

如果您的 IDE 正在使用 g++(可能是),那么命令将是g++ foo.cpp

于 2013-05-03T16:23:37.830 回答
1
  1. 打开 Windows 资源管理器
  2. 导航到包含文件的文件夹
  3. 确保标题名为“foo.h”(您知道资源管理器有时会隐藏文件扩展名,对吗?)

如果不这样做,你的编译器就坏了。

于 2013-05-03T16:34:34.207 回答