如何在 Windows 上修复 VS 2019 中的 SFML 错误?

Posted

技术标签:

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

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

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

【问题讨论】:

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

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

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

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

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

【讨论】:

以上是关于如何在 Windows 上修复 VS 2019 中的 SFML 错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows 10上使用VS2019 编译C

如何在 VS2019 的开发人员命令提示符中修复此链接器错误

VS2019 Xamarin Forms Remote IOS模拟器黑屏 - 如何修复?

在vs2019中如何创建windows窗体中的form

如何解决windows10系统中安装vs2013报错问题

如何修复VS2017?