Запуск файла cpp в системе Linux создает другой файл, который не выполняется? - PullRequest
1 голос
/ 30 апреля 2020

Я пытаюсь изучить C ++, но не могу запустить какой-либо код.

#include <iostream>

int main()
{
   std::cout << "Hello world!";
   return 0;
}

Когда я запускаю этот (или другой файл), он создает другой нераспознанный файл. (https://imgur.com/a/07rpngl, рисунок 2) Затем выдает ошибку на рисунке 1.

Это запуск. json:

    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "cpp - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "cpp build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

И это файл задачи:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        },
        {
            "type": "shell",
            "label": "cpp build active file",
            "command": "/usr/bin/cpp",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        },
        {
            "type": "shell",
            "label": "clang++ build active file",
            "command": "/usr/bin/clang++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        }
    ]
}

Настройки. json файл пуст.

И то, и другое работает без отладки и при этом выдает одну и ту же ошибку. Как я могу это исправить?

Способы, которые были опробованы:

1) Пробный перезапуск приложения и компьютера, не работает.

2) Пробовал с помощью терминала скомпилировать, запустить и отладить код. Это работает , но есть ли способ сделать это через VS Code? (Должен ли я открыть еще один вопрос только для VS Code?)

# First, change your directory to the one that you want to use
# Run the following to compile in the same directory:

g++ -Wall -Wextra -pedantic -Wshadow -std=c++11 -g -o nameforexe source.cpp

# Change -std=c++11 to whatever version of c++ you want to use, and also the file names.
# To run it after this normally do this:

./nameforexe

# To debug, do:

gdb ./nameforexe

# After gdb opens, write "run" without " to run the file. 
# If there is a problem, it will tell you. If there isn't it will run normally.

Спасибо Дэвиду C. Ранкин за это. В комментариях к этому вопросу есть дополнительная информация.

3) Использование CMake (предложено dboy). Я не смог этого сделать. После того, как в разделе вывода было сгенерировано, я не смог найти файл для запуска приложения HelloWorld. (На рисунке 3 показаны файлы)

Файл CMakeLists.txt:

cmake_minimum_required(VERSION 3.10.2)

project("HelloWorld")

set(SOURCE Helloworld.cpp)

add_executable("HelloWorldBuild" HelloWorld.cpp)

При компиляции проблем не возникло. Для меня сейчас CMake может быть продвинутым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...