Strange compiler error due to use of xml in c++ comments
我正在开发一个类似Unix的专有操作系统(我不知道这是否相关),并使用G++进行编译。
我最近注意到,如果我在我的C++评论中放置类似XML的标签,就会得到编译器错误。我并不特别需要这样做,但我认为这很奇怪,我想知道为什么它是编译器的问题。例如:
1 2 3
| // <debugoutput>
std::cerr <<"I'm debugging!" << std::endl;
// </debugoutput> |
如果它在我的代码中的某个地方,会导致大量的编译器错误。但是,将最后一条注释行改为,可以很好地编译。
有人知道为什么编译器会被注释中的那一行混淆吗?发生这种情况时生成的编译器错误似乎根本不相关-它们更像是类末尾的分号、对定义良好的类的未定义引用等。我无法粘贴来自我的开发人员系统的输出,但请相信我,它看起来与问题无关-它更像编译器得到了控制。融合的
- 请您发布一个说明错误的最小示例,并告诉我们编译器打印的错误是什么?如果是多个错误,就不必全部包括在内。只有第一条错误消息就足够了。
- 需要查看更多代码。一个简单的例子(如上所述)适用于GCC4.6.0。
- 我似乎无法在任何一个简单的程序中复制它-这个正在发生的项目是一个非常大的项目,并且它是用多线程的Make构建的(这以前从来没有出现过问题,但认为这可能很重要)。我知道这不是什么好事情,但我希望有人以前也会遇到类似的事情。
- 即使您不能在一个简单的程序中复制它,实际的错误消息仍然是有用的。
- 这是一个封闭的系统,编译器转储文件都是特定于程序的(类名、未定义的引用等),即使我可以提供它,所以除非你能看到程序,这绝对是不可能的,不幸的是。不管怎样,我将用有向图解决方案来结束它——这似乎是唯一有输入的解决方案。
- 行末有反斜杠吗?操作系统是不是真的如此专有以至于你不能告诉我们它是什么?
这听起来像是一个与有向图相关的问题,但如果没有实际的错误消息或显示问题的小代码示例,就很难确定。
尝试在<、/和实际文本之间更改空白,并在C样式的注释中进行尝试,以查看这是否提供了额外的洞察力。
有关C/C++ +有向图和三叉图的信息,请参阅http://e..维基百科org/wiki/c3-三叉树c,以及C++中的三重序列的目的。为什么在C和C++中有有向图?由此而来。
似乎有可能有一些序列被提取(例如作为有向图,它正在丢弃编译器)。
- 由于某种原因,更改注释样式和间距似乎确实减轻了问题。至于编译器输出和代码——它们在一个封闭的系统上,输出甚至与更改的文件都没有关系——更多的是类def没有被找到,诸如此类。如果我能发帖的话,我会发帖的,但是当这种情况发生时,会有成千上万行的编译器错误,哈哈。你说的"图表"是什么意思?如果你让我知道的话,我会把它关闭的:)
- 有向图并不重要,因为无论你交流了什么有向图,它仍然被注释掉。除了新行(不是有向图或三向图)之外,不能用任何字符结束//注释。
- @Deadmg并不是一个合适的编译器有向图的实现,但是如果它是一个更模糊的系统,或者还有其他一些我们没有看到的步骤…