Пытался заставить SFML работать, но теперь я не могу запускать другие файлы C++ в папке проекта из-за ошибки с cl.exe.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Пытался заставить SFML работать, но теперь я не могу запускать другие файлы C++ в папке проекта из-за ошибки с cl.exe.

Сообщение Anonymous »

Теперь всякий раз, когда я нажимаю кнопку запуска в любом из моих проектов cpp, а не только в проекте sfml, о котором я говорю, я получаю сообщение об ошибке. Сборка cl.exe и отладка доступны только тогда, когда VS Code запускается от разработчика. Командная строка для VS.
Но мой проект предназначен для gcc, а не для командной строки разработчика для VS. И когда я нажимаю ctrl+shift+b, я получаю:

'cl.exe' не распознается как внутренняя или внешняя команда.< /p>

Это код в моем файле кода, а это фактический файл кода cpp с кодом:

Код: Выделить всё

#include 

int main()
{
sf::RenderWindow window(sf::VideoMode({200, 200}), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);

while (window.isOpen())
{
while (const std::optional event = window.pollEvent())
{
if (event->is())
window.close();
}

window.clear();
window.draw(shape);
window.display();
}
}
И если я изменю его на код:
#include

Код: Выделить всё

int main() {
sf::RenderWindow window(*sf*::VideoMode(800, 600), "Bouncing Ball");
sf::CircleShape ball(20);
ball.setFillColor(sf::Color::Red);

sf::Vector2f velocity(0.3f, 0.3f);

while (window.isOpen()) {
sf::Event *event*;
while (window.pollEvent(*event*)) {
if (event.*type* == *sf::Event::Closed*) {
window.close();
}
}

// Move the ball
ball.move(velocity);

// Check for collisions with window boundaries
if (ball.getPosition().x < 0 || ball.getPosition().x + ball.getRadius() * 2 > window.getSize().x) {
velocity.x = -velocity.x;
}
if (ball.getPosition().y < 0 || ball.getPosition().y + ball.getRadius() * 2 > window.getSize().y) {
velocity.y = -velocity.y;
}

window.clear(sf::Color::Black);
window.draw(ball);
window.display();
}

return 0;
}
Звезды отмечены 5 разными красными волнистыми линиями.
И когда я вставил их в ИИ, он не смог их исправить.
Я последовал за ними. руководство, и я загрузил GCC 14.2.0 MinGW (SEH) (UCRT) на https://www.sfml-dev.org/download/sfml/3.0.0/#windows, потому что я получил gcc от папка с именем x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0.
Затем я перешел к c_cpp_properties.json в своем файле . vscode и добавил путь к моему SFML3.0.0/include. И в этой папке находится группа проектов, один из которых — мой проект, использующий SFML, и у этого есть собственная папка .vscode с

Код: Выделить всё

 tasks.json
и файл launch.json.
Это мой файл Tasks.json для моего sfml-проекта:

Код: Выделить всё

    {
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"${workspaceFolder}/redBallBouncing.cpp",
"-o",
"${workspaceFolder}/redBallBouncing",
"-I",
"C:\\Users\\This_Is_Where_My_User_Profile_Name_Would_Be\\OneDrive\\Documents\\Libraries\\SFML-3.0.0\\include",
"-L",
"C:\\Users\\This_Is_Where_My_User_Profile_Name_Would_Be\\OneDrive\\Documents\\Libraries\\SFML-3.0.0\\lib",
"-lsfml-graphics",
"-lsfml-window",
"-lsfml-system"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
]
}
А это файл launch.json для моего sfml-проекта:

Код: Выделить всё

    {
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/redBallBouncing",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build",
"miDebuggerPath": "C:/mingw-w64/x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev0/mingw64/bin/gdb.exe",
"logging": {
"engineLogging": false,
"trace": false,
"traceResponse": false
}
}
]
}
Я также добавил путь к библиотеке SFML в PATH для системных переменных.

Подробнее здесь: https://stackoverflow.com/questions/793 ... he-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»