We gaan er van uit dat je een geinstalleerde MinGW-w64 toolchain hebt. Installeer onder de MSYS2 UCRT64 terminal! VScode + MinGW en GCC
Installeer SFML met de packetmanager (dankzij Lia E.):
pacman -Syu
pacman -S mingw-w64-ucrt-x86_64-sfml
Zelf installeren:
Deze voorbeeldcode toont een venster met een cirkel en een vierkant.
/// @file main.c -- SFML install test
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <iostream>
int main ()
{
sf::RenderWindow window (sf::VideoMode(800,600), "SFMLtest", sf::Style::Default, sf::ContextSettings(0, 0, 2));
sf::RectangleShape square(sf::Vector2f(200.0,200.0));
sf::CircleShape circle(100.0);
square.setPosition(sf::Vector2f(150.0,200.0));
circle.setPosition(sf::Vector2f(450.0,200.0));
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(square);
window.draw(circle);
window.display ();
sf::sleep(sf::milliseconds(20));
}
return 0;
}
main.cpp
Je kan deze bestand ook hier downloaden.
Dit is hoe het dan uitziet:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: SFML g++.exe build AND RUN active file",
"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${fileDirname}\\*.cpp",
"-lsfml-graphics",
"-lsfml-window",
"-lsfml-system",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"&&",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\\msys64\\ucrt64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
Voorbeeld tasks.json file voor VScode, bij gebruik van SFML. Let op de -l flags (-lsfml-system en -lsfml-window). De *.cpp wildcard lijkt niet altijd te werken voeg in dat geval de bestandsnamen toe bijvoorbeeld main.cpp
Toelichting door Tobias:
Als het goed is kun je met bovenstaande tasks.json simpelweg de build task runnen via
Terminal
->Run Build Task
of de shortcutCtrl+Shift+B
gebruiken.De task compilet de binary, en runt die gelijk daarna, het is niet nodig om die zelf nog te runnen.*