【问题标题】:Eclipse CDT and unknown tagsEclipse CDT 和未知标签
【发布时间】:2009-02-12 13:49:03
【问题描述】:

目前,我们正在考虑将我们的开发环境从 CodeWright(早已被 Borland 抛弃)迁移到 Eclipse。我们正在使用 Eclipse 进行 Perl、PHP 和一些 Windows C++ 开发,并取得了很大的成功。

然而,问题出现在我们的嵌入式环境中,它在 makefile 中使用了一些 Excel 似乎无法理解的定义。这是一个示例(更改了值以保护有罪者):

F_FOO unsigned char foo(ptr *this)
{
}

其中 F_FOO 在 makefile 中定义为

F_FOO=@foobar

Eclipse 将突出显示 F_FOO 并将其标记为语法错误。这会导致各种可追溯的悲伤。

在某种程度上,这也发生在 Builder C++ 中的某些代码中,其中 Eclipse 不知道如何处理关键字 __fastcall。

对此问题的任何帮助(我知道我们不能成为唯一遇到此问题的人)将不胜感激。

【问题讨论】:

  • 所以 Eclipse 中的源代码看起来像 @foobar unsigned char foo(ptr *this) 对吧?这是c代码吗?
  • 不,在 Eclipse 中,代码看起来就像我在上面写的一样。然后预处理器会知道在 make 过程中用 @foobar 替换 F_FOO,并且链接器知道如何处理该指令。

标签: c eclipse makefile eclipse-cdt


【解决方案1】:

我们尝试了标头指令中的#defines,但由于项目的大小以及文件的绝对数量,结果证明这是一种不太实用的方法。

围绕 Eclipse 工具,我们找到了一个适合我们的解决方案,详情如下:

  1. 右键单击有问题的项目。
  2. 选择结果菜单底部的属性。
  3. 扩展 C/C++ 通用
  4. 选择路径和符号
  5. 在符号下添加有问题的符号(将值留空)

这对我们有用。我们现在已经恢复了我们软件的完全可追溯性。

【讨论】:

    【解决方案2】:

    您可以为Eclipse 不知道的内容创建一个包含在#defines 中的头文件。然后作为构建的一部分,让它使用该头文件的空版本,因此它实际上并不使用这些定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 2011-08-24
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多