【问题标题】:Question about C++ folder structure for header file关于头文件的C++文件夹结构的问题
【发布时间】:2010-09-08 07:12:28
【问题描述】:

在使用 Java 和 eclipse 几年后,我在 C++ 中还很新,我对使用 code::blocks 感到有些困惑,没有自动生成 setter/getter 并且还实现了接口:D。

我想问一下code::blocks中的代码结构,我创建了一个新的控制台应用程序,我的头文件将被放入名为Employee.h的Headers/include文件夹中,然后.cpp将被放入src文件夹中。 现在我创建将调用标题的主类(我放在 src 文件夹之外),我只是像这样附加包含代码:

#include "Employee.h"

确定编译后出现错误: 错误:Employee.h:没有这样的文件或目录。

如何正确链接头部到主类?

这是我的文件夹结构:

更新: 它有效,我的包含文件夹需要添加到构建选项中。

非常感谢

【问题讨论】:

    标签: c++


    【解决方案1】:

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

    code
    code/src
    code/include
    

    并且您正在从“代码”目录中的终端运行 g++,您需要运行(假设您的 .cpp 是 Employee.cpp):

    g++ -Iinclude src/Employee.cpp
    

    不过,我怀疑您正在运行某种 IDE:如果是这样,请在其帮助中搜索“包含路径”,它应该会告诉您如何正确设置它。

    【讨论】:

    • yeahhhh ...它有效,我需要在构建选项中添加我的“包含”文件夹。截图附在上面。
    【解决方案2】:

    如果你想包含你的employee.h,你必须#include "employee.h" 而不是Employee.h。这是两个不同的文件。

    【讨论】:

    • 可能文件的位置也需要验证。
    • ups 抱歉我打错了,我的意思是我有 Employee.h 而不是 employee.h,我真的确定这个问题是关于我的标题的错误寻址。
    【解决方案3】:

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

    你需要:

    #include "include/Employee.h"
    

    您应该只为未添加到典型 /usr/local/include 或 /usr/include 目录的其他库添加包含路径到编译器。

    【讨论】:

    • 当 Employee.h 从文件夹 include 移动到其他文件夹时会发生什么,例如“公司”?在这个例子中,他/她应该将包含路径添加到构建选项中,尽管这种结构并不好。而不是 Headers/Include/Employee.. 只需将您的项目设置为 Headers/...(所有头文件)@Mr. K
    猜你喜欢
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    相关资源
    最近更新 更多