为什么使用msbuild时会间歇性地发生“致命错误C1075”错误?

时间:2010-12-06 22:25:45

标签: c++

可能与我的其他问题相关(注意:不同的错误代码):

我们的buildbot slave每晚编译我们的源代码并且大部分时间都在工作,但是间歇性地,我们看到了这个错误:

c:\Program Files\Microsoft Visual Studio 9.0\VC\include\xtree(223) : fatal error C1075: end of file found before the left brace '{' at '..\lib\net\CSocketMultiplexer.cpp(62)' was matched
        c:\Program Files\Microsoft Visual Studio 9.0\VC\include\xtree(427) : see reference to class template instantiation 'std::_Tree<_Traits>::const_iterator' being compiled
        with
        [
            _Traits=std::_Tmap_traits<ISocket *,CSocketMultiplexer::CJobCursor,std::less<ISocket *>,std::allocator<std::pair<ISocket *const ,CSocketMultiplexer::CJobCursor>>,false>
        ]
        ..\lib\net\CSocketMultiplexer.cpp(75) : see reference to class template instantiation 'std::_Tree<_Traits>::iterator' being compiled
        with
        [
            _Traits=std::_Tmap_traits<ISocket *,CSocketMultiplexer::CJobCursor,std::less<ISocket *>,std::allocator<std::pair<ISocket *const ,CSocketMultiplexer::CJobCursor>>,false>
        ]

请参阅full log outputCSocketMultiplexer.cpp - 我可以在CSocketMultiplexer.cpp更改哪些内容可能会阻止此类事件发生?

另外,可能不值得一提,但是后来在日志中,我们看到了这个错误(这完全有道理,因为文件没有编译):

Copyright (C) Microsoft Corporation. All rights reserved.
BSCMAKE: error BK1506 : cannot open file '.\synergy.dir\Debug\CSocketMultiplexer.sbr': No such file or directory

2 个答案:

答案 0 :(得分:1)

从这个和你的另一个问题来看,我开始把钱花在“硬件故障”上。可能是你的一个RAM芯片中的一位有故障,所以如果你碰巧碰到这个字节,'}'就会变成别的东西。我会运行一个RAM测试工具。

这台机器是否表现出其他奇怪的行为?罕见的随机崩溃,例如?

答案 1 :(得分:0)

我遇到了同样的问题。

编译错误是:

* main.cpp(325):错误C2601:&#39; FLAG&#39; :本地函数定义是非法的

main.cpp(323):此行包含&#39; {&#39;还没有匹配

main.cpp(326):致命错误C1075:在左括号之前找到的文件结尾&#39; {&#39; at&#39; main.cpp(323)&#39;匹配*

但是我的代码没有任何问题。我统计了所有括号和匹配的数字。另一个函数里面没有任何函数。

我通过删除所有&#34; //&#34;解决了这个问题。来自源代码的评论。似乎这样做的原因是错误的行格式化导致编译器错过换行符,因此注释后的行也被视为注释。

例如:

// This is a comment

This_is_a_line;

被视为:

// This is a comment This_is_a_line;