如何解决这些C ++编译错误?

时间:2016-07-29 11:54:59

标签: c++ visual-studio-2015 mfc visual-leak-detector

我正在尝试编译Visual Studio解决方案。我相信源文件没问题。我收到了一系列编译错误。

Visual Studio新安装。 我打开解决方案并运行构建,它有错误。 我去了Project,发现有一些缺失的功能。 我安装了它们: -

Windows XP Support for C++
Common Tools for Visual C++ 2015
Windows 8.1 SDK and Universal CRT SDK
Microsoft Foundation Classes for C++

然后我尝试构建解决方案,但收到错误通知我

Error   C1083   Cannot open include file: 'vld.h': No such file or directory ...

我对此进行了研究,并设法弄清楚这是指Visual Leak Detector

我安装了那个。现在我面临的错误更少,但有数百条警告。我现在不太关心的警告。但我正试图解决错误,推动事态向前发展。

我现在遇到的错误是:

  

首先: -

Severity    Code    Description Project File    Suppression State
Error (active)      expected an identifier    c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\string 666 
Error (active)      expected an expression    c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\string 667 
Error (active)      expected a ';'            c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\string 689 

在字符串文件(包含这些错误)中,这是导致错误的代码部分:

// basic_string LITERALS
inline namespace literals {
inline namespace string_literals {
inline string operator "" s(const char *_Str, size_t _Len)
    {   // construct literal from [_Str, _Str + _Len)
    return (string(_Str, _Len));
    }

inline wstring operator "" s(const wchar_t *_Str, size_t _Len)
    {   // construct literal from [_Str, _Str + _Len)
    return (wstring(_Str, _Len));
    }

inline u16string operator "" s(const char16_t *_Str, size_t _Len)
    {   // construct literal from [_Str, _Str + _Len)
    return (u16string(_Str, _Len));
    }

inline u32string operator "" s(const char32_t *_Str, size_t _Len)
    {   // construct literal from [_Str, _Str + _Len)
    return (u32string(_Str, _Len));
    }
}   // inline namespace string_literals
}   // inline namespace literals
_STD_END

以上3行是根据编译器特别错误的: -

inline namespace literals {                    [line 666]
inline namespace string_literals {             [line 667]
_STD_END                                       [line 689]

然而,这是一个Microsoft Include,直接来自C ++的基础类,所以我不明白它为什么会产生这个错误。

  

其次

我收到此错误。

Error   LNK1181 cannot open input file 'C:\Git\projectpath\Release\aspirata.lib'    SymbolDumperUserDll C:\Git\projectpath\SymbolDumperUserDll\LINK 1   

我已将路径名缩短为“项目路径”,以简化上述操作。

我自己已经完成了安装我上面提到的三个组件和VLD的想法。

最后的错误是指向发布目录中的.lib,所以我认为这可能与编译前面没有创建.lib文件有关,可能是由于上面的第一个错误?但我不太确定。

您能否建议我如何克服这些编译错误?

  • 感谢

0 个答案:

没有答案