【问题标题】:Weird error in Keil compilerKeil编译器中的奇怪错误
【发布时间】:2015-06-12 19:32:42
【问题描述】:

如下图所示,当我评论include "gui.cpp"include <gui.cpp> 之一时,using namespace GUI 右侧出现红十字错误。但是当我同时包含它们时,错误就被删除了。有人知道吗?

【问题讨论】:

  • 1) 这不是 C。2) 人们通常不包括 cpp 文件。3) 如果我们假设 cpp 引用了某个函数或类型,这没什么奇怪的,这是原型在那个参考之后。
  • 另外,使用 "" 而不是 可能会导致编译器使用不同的查找路径,因此 .cpp 文件可能位于不同的目录中。
  • 您的编译器可能对# 之前的前导空格很敏感。我注意到您对#include"target"<target> 之间的空格也不一致,虽然合法,但您的颜色语法突出显示不喜欢它。请在您的源格式中保持一致 - 这种对细节的关注具有良好的连锁效应。
  • 通常cpp 文件不包括在内,而是编译为单独的翻译单元,然后链接在一起。 Keil 编译器是否需要单个 CPP 文件中的所有内容?
  • @EugeneSh。问题是我需要包括他们两个!为什么?是不是很奇怪?!

标签: c++ keil


【解决方案1】:

不要包含.cpp 文件或任何源文件。您应该只包含头文件。让链接器处理源文件。

您应该创建一个gui.h 并包含它。

【讨论】:

    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    相关资源
    最近更新 更多