它不会编译,我有以下错误:
- 目录中没有这样的文件;
- 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
字符串
所述cpp
#include "foo.h"
foo::foo()
{
num = 10;
}
void foo :: set_num(int set)
{
num = set;
}
int foo :: get_num()
{
return num;
}
型
忽略类本身和它的作用,问题是即使我使用了默认的代码块类创建设置,它也不能编译。
错误:
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 ===|
型
3条答案
按热度按时间dz6r00yl1#
如果头文件不在同一个目录中,则必须在include命令中指定路径,或者必须将-I Path指令添加到makefile或include设置中。
也许这个链接也有帮助,因为代码块似乎有问题。
http://www.jusuchyne.com/codingchyne/2011/03/codeblocks-failed-to-find-the-header-file/
qlzsbp2j2#
是否可以在命令行中导航到源目录并尝试手动编译以确保错误不是IDE造成的?
如果您的IDE使用的是g++(很可能是),则命令为
g++ foo.cpp
d7v8vwbk3#
1.打开Windows资源管理器
1.导航到包含文件的文件夹
1.确保头文件名为“foo.h”(你知道Explorer有时会隐藏文件扩展名,对吧?)
如果这还不行,你的编译器就坏了。