GNU/Linux >> LINUX-Kenntnisse >  >> Linux

VS Code erstellt keine C++-Programme mit mehreren CCP-Quelldateien

sich faul fühlen,

Das ist tasks.json von vscode für Linux-Distributionen, um mehrere cpp-Dateien zu kompilieren.

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

Dies ist eine Windows-Antwort für dasselbe Problem:

Ich hatte auch damit zu kämpfen, bis ich unter https://code.visualstudio.com/docs/cpp/config-mingw die folgende Antwort fand:

Sie können Ihre Datei „tasks.json“ ändern, um mehrere C++-Dateien zu erstellen, indem Sie ein Argument wie "${workspaceFolder}\\*.cpp" verwenden statt ${file} . Dadurch werden alle .cpp-Dateien in Ihrem aktuellen Ordner erstellt. Sie können den Ausgabedateinamen auch ändern, indem Sie "${fileDirname}\\${fileBasenameNoExtension}.exe" ersetzen mit einem fest codierten Dateinamen (zum Beispiel "${workspaceFolder}\\myProgram.exe" ).

Beachten Sie, dass das F in workspaceFolder groß geschrieben wird.

Als Beispiel sah in meiner Datei „tasks.json“ in meinem Projekt der Text zwischen den Klammern unter „args“ ursprünglich so aus:

"-g",
  "${file}",
  "-o",
  "${fileDirname}\\${fileBasenameNoExtension}.exe"

Dies gab mir Referenzfehler, weil es nur eine und nicht beide meiner Dateien kompilierte.

Ich konnte das Programm jedoch zum Laufen bringen, nachdem ich diesen Text wie folgt geändert hatte:

"-g",
"${workspaceFolder}\\*.cpp",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"

in task.json:

        "label": "g++.exe build active file",
        "args": [
            "-g",
            "${fileDirname}\\**.cpp",
            //"${fileDirname}\\**.h",
            "-o",
            "${fileDirname}\\${fileBasenameNoExtension}.exe",
        ],

in launch.json:

"preLaunchTask": "g++.exe build active file"

Es funktioniert, wenn sich Ihre Quellen in einem separaten Ordner befinden


Wenn Sie mehrere Dateien haben und eine hängt von einem cpp ab Datei für eine andere, müssen Sie g++ anweisen, sie ebenfalls zu kompilieren, damit der Linker sie finden kann. Der einfachste Weg wäre:

$ g++ Cat.cpp main.cpp -o Classes


Linux
  1. Ventoy:So erstellen Sie ein Multiboot-USB-Laufwerk mit mehreren ISO-Dateien

  2. Makefiles mit Quelldateien in verschiedenen Verzeichnissen

  3. Linux-Tool zum Überprüfen der Rechtschreibung von Kommentaren im c/c++-Quellcode

  4. Wie würde ich Python selbst aus dem Quellcode unter Ubuntu erstellen?

  5. Wie ändern verschiedene Distributionen die Speicherorte von Konfigurationsdateien für Programme?

Übertragen Sie mit diesem Open-Source-Tool Dateien zwischen Ihrem Telefon und Linux

Bewahren Sie mit diesem Open-Source-Tool mehrere Linux-Distributionen auf einem USB-Stick auf

Synchronisieren Sie Dateien zwischen mehreren Systemen mit Syncthing

Wie kontrolliert man die Quell-IP-Adresse eines ZeroMQ-Pakets auf einem Rechner mit mehreren IPs?

Wie kann ich automatisch alle Quellcodedateien in einem Ordner (rekursiv) in ein einziges PDF mit Syntaxhervorhebung konvertieren?

So holen Sie mit Ansible mehrere Dateien vom Remote-Computer auf den lokalen Computer