Невозможно найти printf.c в Ubuntu 16.04 - PullRequest
0 голосов
/ 04 октября 2018

Я недавно перешел на Ubuntu 16.04.Я использую vscode для IDE в Ubuntu.Я настраиваю другие языки, но я не смог сделать это для C/C++.Я создал c_cpp_properties.json, launch.json & tasks.json.Когда я начал компилировать любой данный код, он выдает ошибку, когда такие функции подходят как printf или malloc.Сообщение об ошибке:

Невозможно открыть 'printf.c': файл не найден (файл: ///build/glibc-Cl5G7W/glibc-2.23/stdio-common/printf.c).

Как мне решить проблему?

launch.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": "(gdb) Launch",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/test.exe",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": true,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ],
        "preLaunchTask": "build"
    }
]
}

tasks.json

{
"version": "2.0.0",
"tasks": [
    {
        "label": "build",
        "type": "shell",
        "command": "gcc",
        "args": [
            "-g",
            "pointer_revision.c",
            "-o",
            "test.exe"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        }
    }
]
}

c_cpp_properties.json

{
      "configurations": {
        "name": "Linux",
        "includePath": [
            "${workspaceFolder}",
            "/usr/include/x86_64-linux-gnu/5/include",
            "/usr/local/include",
            "/usr/include/x86_64-linux-gnu/5/include-fixed",
            "/usr/include/x86_64-linux-gnu",
            "/usr/include"
        ],
        "defines": [],
        "intelliSenseMode": "clang-x64",
        "browse": {
            "path": [
               "${workspaceFolder}",
                "/usr/include/x86_64-linux-gnu/5/include",
                "/usr/local/include",
                "/usr/include/x86_64-linux-gnu/5/include-fixed",
                "/usr/include/x86_64-linux-gnu",
                "/usr/include"
            ],
            "limitSymbolsToIncludedHeaders": true,
            "databaseFilename": ""
        },
        "compilerPath": "/usr/bin/gcc"
    }
}

1 Ответ

0 голосов
/ 04 октября 2018

К сожалению, Debian и Ubuntu не поставляют исходные коды как часть пакетов отладки.Насколько я могу судить, не планируется отправлять исходные коды как часть пакетов dbgsym .

В отличие от этого, Fedora и ее нижестоящие дистрибутивы имеют обширную инфраструктуру для подготовки используемых исходных файлов дляотладки.Это не совсем тривиально, потому что это требует перезаписи путей к файлам в данных DWARF, от местоположения дерева сборки до местоположения установки.Но это может быть очень полезно для отладки и дает хороший вкус свободного программного обеспечения для всего дистрибутива.

...