问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

VSCode配置SFML开发环境

创作时间:
作者:
@小白创作中心

VSCode配置SFML开发环境

引用
CSDN
1.
https://blog.csdn.net/formaever/article/details/140682683

本文将详细介绍如何在VSCode中配置SFML开发环境。通过本文,你将学会如何下载SFML库文件和编译器、配置环境变量,以及在VSCode中安装必要的插件和编辑配置文件。

下载SFML库文件及对应的编译器

首先需要从官方网站下载最新版本的SFML库文件。这里以SFML 2.6.1为例,并下载对应的GCC编译器。

下载64位的库文件:GCC 13.1.0 MinGW (SEH) - 64-bit以及对应的GCC编译器:WinLibs MSVCRT 13.1.0 (64-bit)。下载后解压,建议解压到C盘的根目录下,解压后的路径分别是C:\SFML-2.6.1和C:\mingw64。

配置环境变量

在系统变量的Path中分别添加SFML开发库的bin目录和编译器的bin目录。配置完成后,打开PowerShell或者Cmd,输入g++ -v,如果成功输出,则表示环境变量配置成功。

VSCode配置

创建一个新的文件夹,例如命名为SFML,然后用VSCode打开。需要安装以下几款插件:

按住快捷键Ctrl+Shift+P,输入C/C++,选择C/C++:编辑配置(JSON)。这会在SFML文件夹下产生一个.vscode文件夹,并打开一个名为c_cpp_properties.json的文件。

编辑文件,在includePath下添加mingw的include路径和SFML的include的路径,同时修改"compilerPath":的g++编译器路径。

在SFML目录下新建一个test.cpp文件,按Ctrl+F5快捷键运行程序,在弹出的配置中选择“C/C++:g++.exe生成和调试活动文件”,在.vscode中生成tasks.json文件。

在args中添加SFML头文件的路径和库文件的路径,以及编译时需要链接的库。

配置完后,在test.cpp文件中输入下面的测试代码,看看能否正确编译运行:

#include <SFML/Window.hpp>
int main()
{
  sf::Window window(sf::VideoMode(800, 600), "SFML works!");
  while (window.isOpen())
  {
    sf::Event event;
    while (window.pollEvent(event))
    {
      /* code */
      if (event.type == sf::Event::Closed)
        window.close();
    }
  }
}

如果编译运行成功,则会弹出如下窗口:

按住快捷键Ctrl+Shift+P,输入C/C++,选择C/C++:添加调试配置(JSON)。选择后会在.vscode下生成launch.json文件。确保preLaunchTask配置的内容与tasks.json中的label标签内容一致。

配置Code Runner:

快捷键Ctrl+Shift+P,输入settings,生成settings.json文件,在文件中输入如下三行代码:

"code-runner.runInTerminal": true,
"code-runner.saveFileBeforeRun": true,
"code-runner.executorMap"

接着在第三行代码后输入:号,会自动产生后面的代码,找到包含CPP的行,加入SFML头文件路径、SFML库路径以及要链接的库:-lsfml-graphics -lsfml-window -lsfml-system

点击右上角的Run Code按钮,同样可以编译运行程序。

配置环境时遇到的问题

配置完环境后,可能会遇到编译成功但运行程序无法弹出窗口的问题,且没有任何输出打印;而在文件夹内手动执行程序,会弹出错误提示:无法定位程序输入点 _Zst28_throw_bad_array_new_lengthv于动态链接库...上。

有两种解决办法:

  1. 从C:\mingw64\bin目录下拷贝libstdc++-6.dll文件到当前要运行的程序目录下;
  2. 拷贝libstdc++-6.dll到C:\Windows\System32目录下
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号