【问题标题】:How can I fix SFML errors in VS 2019 on windows?如何在 Windows 上修复 VS 2019 中的 SFML 错误?
【发布时间】:2020-09-02 13:03:23
【问题描述】:

我在 LinkedIn 上观看了一个视频来设置 SFML,但是当我尝试编译代码时出现了几个错误,其中一些是:

  1. C2065“全屏”:未声明的标识符
  2. C3861 'RenderWindow':找不到标识符
  3. C2871 'sf':具有此名称的命名空间不存在
  4. C2653 'Style':不是类或命名空间名称
  5. C2065 'VideoMode':未声明的标识符
  6. C3861 'vm':找不到标识符
  7. C2065 'vm':未声明的标识符
  8. C26444 不要尝试声明没有名称的局部变量(es.84)
  9. C2146 语法错误:缺少 ';'在标识符“vm”之前

【问题讨论】:

  • 你的错误是你没有#include "pch.h" 作为第一行。在 Visual Studio 中,使用预编译头文件时,编译器会忽略 #include "pch.h" 上方的每一行
  • 尽管在这种特殊情况下,您的“错误”很明显,但您确实应该将代码发布为(代码格式的)文本块,而不是图像。否则,您的问题可能会以“需要详细信息或清晰度!”而结束。我建议你编辑你的问题来做到这一点。

标签: c++ namespaces visual-studio-2019 sfml


【解决方案1】:

假设(根据其名称)“pch.h”为您的构建生成和/或使用预编译头文件,那么 必须 成为第一个头文件包含在任何源文件中。否则,从包含的头文件中“收集”的任何内容都会丢失,因为编译器只会查看该预编译头文件和之后包含的文件。

所以,只需将前三行重新排列如下:

#include "pch.h" // MUST be the first header included!
#include <iostream>
#include <SFML/Graphics.hpp>

有关 Visual Studio 中预编译标头的有趣(且内容丰富)讨论,请参阅此 Stack Overflow 问题以及那里的答案:Precompiled Headers

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2019-11-12
    • 2021-10-20
    相关资源
    最近更新 更多