Задать вопрос
@Pavel_Chalov

Как запустить SFML проект в VS Code с CMake?

G++ 14.2.0
CMake 3.31.2
SFML 3.0.0

Склонировал себе репозиторий (ссылка), в main.cpp вылезла ошибка, исправил ее дописав в includePath путь до SFML, но как сконфигурировать, забилдить и запустить не шарю.

676fccd0d779d263864590.png

Вот что в CMakeLists:
cmake_minimum_required(VERSION 3.28)
project(CMakeSFMLProject LANGUAGES CXX)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

include(FetchContent)
FetchContent_Declare(SFML
    GIT_REPOSITORY https://github.com/SFML/SFML.git
    GIT_TAG 3.0.0
    GIT_SHALLOW ON
    EXCLUDE_FROM_ALL
    SYSTEM)
FetchContent_MakeAvailable(SFML)

add_executable(main src/main.cpp)
target_link_libraries(main PRIVATE SFML::Graphics)
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
babenow
@babenow
Программирование - пожалуй лучшее хобби в мире
В целом, сделать это несложно. И дело здесь вовсе не в VSCode.
Для сборки проекта вам необходимо написать пресеты - файлы CMakePresets.json и CMakeUserPresets.json. В CMakePresets.json помешаются настройки окружения, которые не зависят от вашей машины. В CMakeUserPresets.json помещаются настройки для конкретного проекта.
Примеры таких файлов (кстати, с ними все по идее должно собраться,, если в PATH добавить путь к cl.exe (компилятор MSVC)
---
CMakePresets.json

{
    "version": 6,
    "cmakeMinimumRequired": {
        "major": 3,
        "minor": 22
    },
    "configurePresets": [
        {
            "name": "Configure",
            "hidden": true,
            "generator": "Ninja",
            "binaryDir": "${sourceDir}/out/build/${presetName}",
            "installDir": "${sourceDir}/out/install/${presetName}",
            "cacheVariables": {
                "CMAKE_CXX_STANDARD": "23",
                "CMAKE_CXX_STANDARD_REQUIRED": "ON",
                "CMAKE_RUNTIME_OUTPUT_DIRECTORY": "${sourceDir}/out/bin/${presetName}",
                "CMAKE_LIBRARY_OUTPUT_DIRECTORY": "${sourceDir}/out/lib/${presetName}",
                "CMAKE_ARCHIVE_OUTPUT_DIRECTORY": "${sourceDir}/out/lib/${presetName}",
                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
            }
        },
        {
            "name": "MSVCFlags",
            "hidden": true,
            "cacheVariables": {
                "CMAKE_CXX_FLAGS": "/W4 /EHsc /w14242 /w14254 /w14263 /w14265 /w14287 /w14289 /w14296 /w14311 /w14545 /w14546 /w14547 /w14549 /w14555 /w14640 /w14826 /w14928 /WX "
            }
        },
        {
            "name": "Debug",
            "hidden": true,
            "inherits": "Configure",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug"
            }
        },
        {
            "name": "Release",
            "hidden": true,
            "inherits": "Configure",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Release"
            }
        },
        {
            "name": "RelWithDebInfo",
            "hidden": true,
            "inherits": "Configure",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "RelWithDebInfo"
            }
        },
        {
            "name": "MinSizeRel",
            "hidden": true,
            "inherits": "Configure",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "MinSizeRel"
            }
        }
    ]
}



CMakeUserPresets.json

{
    "version": 6,
    "cmakeMinimumRequired": {
        "major": 3,
        "minor": 22
    },
    "configurePresets": [
        {
            "name": "msvc2022_64",
            "hidden": true,
            "cacheVariables": {
                "CMAKE_CXX_COMPILER": "cl.exe"
            }
        },
        {
            "name": "ProjectConfigure",
            "hidden": true,
            "inherits": [
                "MSVCFlags",
                "msvc2022_64"
            ],
            "cacheVariables": {
                "CMAKE_PREFIX_PATH": ""
            }
        },
        {
            "name": "win-debug-msvc-x64",
            "displayName": "Windows Debug (MSVC x64)",
            "inherits": [
                "Debug",
                "ProjectConfigure"
            ]
        },
        {
            "name": "win-release-msvc-x64",
            "displayName": "Windows Release (MSVC x64)",
            "inherits": [
                "Release",
                "ProjectConfigure"
            ]
        },
        {
            "name": "win-release-with-deb-info-msvc-x64",
            "displayName": "Windows Release With Debug Information (MSVC x64)",
            "inherits": [
                "RelWithDebInfo",
                "ProjectConfigure"
            ]
        },
        {
            "name": "win-min-size-release-msvc-x64",
            "displayName": "Windows Release Minimum Size (MSVC x64)",
            "inherits": [
                "MinSizeRel",
                "ProjectConfigure"
            ]
        }
    ]
}



Далее выбираете необходимую предустановку, настраиваете, собираете, запускаете
677d602cb2546178287182.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы