企业架构师错误:意外符号修复?

3
我正在尝试通过导入C++文件来生成UML图。所以我右键单击我的项目文件夹,然后转到“代码工程”->“导入源目录”,选择包含所有C++文件的文件夹。到目前为止都还好吗?
我收到了以下错误信息:
There was an error parsing C:/path/to/file on line X. Unexpected symbol: typedef
You may need to define a language macro.

我以为遵循这个并添加typedef来实现,但那并没有起到任何作用。

我对EA非常陌生。任何帮助将不胜感激。

2个回答

3

typedef并不是宏,而是普通的C语言结构。EA的解析器在typedef之前遇到了一些问题,并且失效了。因此,请查看该行之前是否有其他宏的使用。


当我在类的"protected:"行上使用我们的宏来切换__declspec(dllimport)和__declspec(dllexport)时(我们使用相同的头文件进行编译和发布),解析器实际上无法识别该宏,导致了与我相同的问题。看起来解析器就像旧编译器一样,在下一行中显示错误而不是有误的行。 - Tim Meyer
@TimMeyer 你可以向Sparx发送一个错误报告。但是你需要非常耐心地等待最终的修复。 - qwerty_so

1
EA解析C/C++,而不是C预处理语言。
因此,在文件中的任何宏都必须在文件被EA解析之前进行管理。一种方法是按照您链接的帮助页面中概述的方式在EA中定义文件中的所有宏;这会使EA识别并忽略这些宏。
另一种选择是通过预处理器运行文件以解决宏,然后将实际的C/C++源文件发送给EA。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接