如何在 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 错误?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 VS2019 的开发人员命令提示符中修复此链接器错误