【问题标题】:Unknown type name class未知类型名称类
【发布时间】:2013-04-26 12:27:32
【问题描述】:

我有以下头文件:

https://gist.github.com/wemakeweb/5501443 并且编译器总是报告“Unknown Type name Class”。我已经包括了前向声明,以打破循环,包括,我认为我必须这样做。我忘记了什么?

编辑:我把它全部放在一个头文件中,编译器仍然报告“预期;在顶级声明符之后”

https://gist.github.com/wemakeweb/5583500

编辑 2 现在我收到链接器错误。 “架构 x86_64 的未定义符号”

已解决,问题已解决

  1. 通函包括
  2. main.c 代替 main.cpp
  3. 实际代码位于未正确链接的静态库中

【问题讨论】:

  • 示例在哪一行?你使用的是什么编译器,有什么编译选项?
  • 现在你还没有显示你得到的 ilnker 错误。如果您希望人们帮助您解决问题,您必须更加努力。
  • 是的,你是对的,我仅将链接错误发布为对 roddys 答案的评论

标签: c++ forward-declaration


【解决方案1】:

这个错误? error: unknown type name ‘class’

您可能将其编译为 C 而不是 C++。

确保您的源文件具有.cpp 扩展名,并且所有相关的编译器标志都设置正确。 (如果您包含 exact 错误消息和行号会有所帮助。不要尝试重新输入,只需剪切+粘贴即可。)

【讨论】:

  • 我在头文件中得到的第一个错误是“预期的;在顶级声明符之后”
  • @SepOSep 是的,但是什么行号和文件?头文件没有任何问题,所以还要显示试图包含它的 cpp 源。你确实一个 .cpp 文件,不是吗?
  • 是的,它是一个 main.c 文件,我现在将其更改为 main.cpp。我现在正在与链接器错误“架构 x86_64 的未定义符号”作斗争。
【解决方案2】:

Feld.hFigur.h 之间至少有一个循环包含依赖项。如果您还包含标题,则前向声明无效。只需删除包含。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 2018-10-27
    • 2016-09-16
    • 2012-04-03
    • 2017-01-09
    • 2015-01-25
    相关资源
    最近更新 更多