2010-09-08 86 views
2

在Java和eclipse中使用C++几年后,我很新,使用code :: blocks有一点困惑,没有自动生成setter/getter,还实现了interface:D。关于头文件的C++文件夹结构的问题

我想问一下code :: blocks中的代码结构,我创建了一个新的控制台应用程序,我的头文件将被放到Headers/include文件夹中,名字叫Employee.h,然后.cpp将被放到src文件夹中。 现在我创建主类(我把src文件夹外)谁就会调用头,我只是追加了包括这样的代码:

#include "Employee.h" 

确保再编译错误出现后: 错误:Employee.h : 无此文件或目录。

如何正确地将标题链接到主类?

这是我的文件夹结构:

alt text

更新: 它的工作原理,我包括文件夹需要在编译选项添加。 alt text

真的感谢

回答

2

您需要将include目录添加到编译器的包含路径中。这将是编译器特定的。例如,如果你的结构是:

code 
code/src 
code/include 

,你是从“代码”目录下的终端运行的G ++,你需要运行(假设你的.cpp是Employee.cpp):

g++ -Iinclude src/Employee.cpp 

我怀疑你正在运行某种IDE,但是:如果是,请在其帮助中搜索“include path”,它会告诉你如何正确设置它。

+0

yeahhhh ...它的工作原理,我需要在构建选项上添加我的“包含”文件夹。捕获附在上面。 – 2010-09-08 07:51:58

1

如果你希望在你的employee.h你必须#include "employee.h"Employee.h。这是两个不同的文件。

+0

可能的文件位置也需要验证。 – ckv 2010-09-08 07:19:59

+0

ups对不起我的错误类型,我的意思是我有Employee.h不是employee.h,我真的很确定这个问题是关于我的头错误的地址。 – 2010-09-08 07:20:06

+0

在区分大小写的操作系统上。麻烦从Windows迁移到Unix ... – 2010-09-08 07:20:44

1

您不应该添加包含路径到您的项目的头文件实际上部分的生成选项。它没有从EmployeeTest.cpp中找到头文件,因为你没有使用完整的相对路径。

您需要:

#include "include/Employee.h" 

你应该只添加包含路径到你的编译器对于未添加到典型的/ usr /本地/附加库包括或/ usr/include目录。

+0

当Employee.h从文件夹包含文件移动到其他文件夹时,会发生什么情况,比如......“company”?在这个例子中,他/她应该将包含路径添加到构建选项,尽管这种结构并不好。而不是Headers/Include/Employee ..只需将您的项目设置为Headers/...(所有头文件)@Mr。 ķ – clanmjc 2012-07-31 21:24:40