【问题标题】:Weird Compiler behavior (C++)奇怪的编译器行为 (C++)
【发布时间】:2016-12-15 04:01:23
【问题描述】:

我正在尝试将 GA 库 (GALib) 添加到我的无错误程序中,当我添加它时,编译器会返回奇怪的错误并重复它们很多次......例如,“语法错误:缺少' {' before '

template<class _Ty>
_Check_return_ inline _Ty _Pow_int(_Ty _Xx, int _Yx) _NOEXCEPT
{
unsigned int _Nx;
if (_Yx >= 0)
    _Nx = static_cast<unsigned int>(_Yx);
else
    _Nx = static_cast<unsigned int>(-_Yx);

for (_Ty _Zx = static_cast<_Ty>(1); ; _Xx *= _Xx)
    {
    if ((_Nx & 1) != 0)
        _Zx *= _Xx;
    if ((_Nx >>= 1) == 0)
        return (_Yx < 0 ? static_cast<_Ty>(1) / _Zx : _Zx);
    }
}

错误在 cmath.h 同一行的错误重复了 25 次左右。其他许多人也是如此。 (提到的错误是列表中的第一个错误) PS。我使用以下顺序添加了 GA 文件: 1-项目属性>C++>其他包含库>选择文件夹 2-将包含标题和源的文件夹拖放到项目解决方案管理器 聚苯乙烯。所有源文件的扩展名都是 .C 而不是 .cpp 我该如何解决这种情况?

【问题讨论】:

  • @Vality 这是标准库代码。
  • @Peet 它们应该是 C++ 还是 C 源文件?可能该库使用 .C(大写 C)表示 C++,但由于 Windows 不区分大小写,因此将 .C 与 .c 视为 C 相同。
  • @immibis 我在写这个问题的时候一直在思考这个问题,所以我回到了 GA 库的文档,发现:“设置开发环境以在 .C 文件上使用 C++ 编译器(这是 MS Visual C++ 中的 /TP 标志)。在 Visual C++ 中启用 RTTI。“虽然不知道该怎么做...仍在搜索
  • 库使用 .c 作为 c++ 代码的扩展是非常愚蠢的。
  • @Peet 在源文件的属性中有一个选项。

标签: c++ visual-studio compiler-errors


【解决方案1】:

此页面中的以下步骤:msdn.microsoft.com/en-us/library/032xwy55.aspx 大多数错误都消失了(包括提到的错误)。

主要问题是编译器使用默认选项处理 .C 文件,我在前面的页面中将其更改为 C++。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多