【问题标题】:#include directories are not recognized, My tutor cant resolve it#include 目录无法识别,我的导师无法解决
【发布时间】:2015-02-10 07:25:24
【问题描述】:

我的#include 目录有问题。我在同一个解决方案中创建了一个名为 Project_2_ 的游戏项目,我有一个名为 Library 的项目,它保留了它的名字。 我在我的 Project_2_ 中创建了一些 .h 和 .cpp 文件: 小行星h /.cpp 序列化器 h / .cpp 游戏管理器 h /.cpp 主要h/cpp

现在我的问题是某些文件将接受包含目录,而另一些则不会。 GameManager.h 将只接受 Serialiser.h 而不是 Asteroid.h 或任何库文件。 Serialiser.h 将只接受 Project_2_ 文件,而 Asteroid.h 将接受我包含的任何文件。 标准的 windows 文件都被接受。 所以这是我的导师建议的,到目前为止还没有奏效:

检查了库是否链接到项目... 将 GameManager.h 属性中的附加包含目录从“C/file/file/Library”更改为“..Library”.... 我尝试创建新项目和新文件,确保它们是“空项目”...... 五元组检查了我所有的拼写.... 调整了 Asteroid.h /.cpp 目录的路径,因为它们在库中(我猜是错了吗?)

我已经多次将我的项目发送给我的导师,他能够在他的机器上编译我的程序。 所以我认为这涵盖了很多基本的东西。它可能是我的计算机特有的吗?我正在运行 64 位 Windows 7(笔记本电脑)

提前致谢, 丹。

【问题讨论】:

    标签: c++ include directory


    【解决方案1】:

    你是否对每个头文件都使用这种结构:

    #ifndef FILENAME_H
    #define FILENAME_H
    
    //Code here
    
    #endif
    

    请记住,FILENAME_H 对于每个文件都必须是唯一的。 这将防止循环包含在您的文件中。

    【讨论】:

    • 请参阅上面的查询答案
    【解决方案2】:

    首先你必须确保你拥有一些东西。

    所有不同的文件头都必须返回到您计划使用该函数的 main.cpp,其次,您必须在头文件中包含 #ifndef 和 #endif 宏。我看到的最后一个问题是你必须也这样做

    如果不添加包含“头文件”,头文件将不接受彼此的功能

    解决方案:

    在需要该头文件中的函数的文件中添加包含“头文件”。或者创建子类和父类,以便更容易“连接”它们并一起使用它们的功能。

    Q : Aslo,为什么不把你所有的头文件放到同一个头文件中呢?

    【讨论】:

    • 回答你们两个@karol/@bot,我有 ifndef、define 和 endif。和我的头文件都是连接的。我的导师已经看过好几次了,所以不太可能是代码的基本问题。他还复制了我编写的代码并将其粘贴到一个新项目中,并且运行良好。 (它不会编译,因为它是不完整的代码,但我遇到的错误不存在)
    猜你喜欢
    • 1970-01-01
    • 2015-11-09
    • 2022-01-23
    • 2018-07-21
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多