Bagaimana cara mengatur Visual Studio Code untuk mengkompilasi kode C ++?

222

Editor Visual Studio Code dari Microsoft cukup bagus, tetapi tidak memiliki dukungan default untuk membangun proyek C ++.

Bagaimana cara mengkonfigurasinya untuk melakukan ini?

Peter Mortensen
sumber
12
Ada banyak jawaban untuk mengkompilasi kode C ++ di Linux, tetapi bagaimana dengan Windows?
Charles Milette
5
Hal-hal mendasar seperti itu dan belum ada sumber daya yang membantu untuk melakukan ini di windows. Dan ekstensi ms cpptools, jangan bicarakan itu. Saya kira itu hanya untuk menambah frustrasi Anda. Tidak melakukan apa-apa.
Kshitij
Adakah yang menemukan solusi? Saya dapat mengkompilasi, tetapi tidak men-debug C / C ++ pada VSCode. Artikel ini mengatakan debugging hanya didukung di linux. Baru-baru ini saya membuat utas ini untuk hal yang sama. Akan menghargai bantuan apa pun ...
Mahesha999

Jawaban:

133

Ada banyak cara yang lebih mudah untuk mengkompilasi dan menjalankan kode C ++, tidak diperlukan konfigurasi:

  1. Instal Ekstensi Code Runner
  2. Buka file kode C ++ Anda di Editor Teks, kemudian gunakan pintasan Ctrl+Alt+N, atau tekan F1lalu pilih / ketik Run Code, atau klik kanan Editor Teks dan kemudian klik Run Codedalam menu konteks, kode akan dikompilasi dan dijalankan, dan output akan ditampilkan di Jendela Keluaran.

Selain itu Anda dapat memperbarui konfigurasi di settings.json menggunakan berbagai kompiler C ++ seperti yang Anda inginkan, konfigurasi default untuk C ++ adalah seperti di bawah ini:

"code-runner.executorMap": {
    "cpp": "g++ $fullFileName && ./a.out"
}
Jun Han
sumber
4
Jendela Keluaran saya terhenti running blablabla. Tidak ada prompt, tidak ada. Bagaimana cara saya menghentikan kode?
Hichigaya Hachiman
11
Untuk berhenti menjalankan kode, gunakan Ctrl+Alt+M. Untuk menggunakan stdin untuk membaca data, Anda bisa pergi ke File-> Preference-> Settingsuntuk mengatur "code-runner.runInTerminal": true. Untuk detail lebih lanjut, Anda dapat merujuk ke github.com/formulahendry/vscode-code-runner/issues/91
Jun Han
1
Berjalan di jendela output mencegah input terminal. runInTerminal tampaknya perlu ...
Andrew Wolfe
Mendapatkan kesalahan - "error: kosongkan nama file di #include"
gaurav
9
Anda harus mengungkapkan bahwa Anda adalah penulis ekstensi yang Anda promosikan.
Codebling
86

Tugas pembangunan adalah spesifik proyek. Untuk membuat proyek baru, buka direktori dalam Visual Studio Code.

Mengikuti instruksi di sini , tekan Ctrl+ Shift+ P, ketik Configure Tasks, pilih dan tekan Enter.

File task.json akan dibuka. Tempel skrip build berikut ke dalam file, dan simpan:

{
    "version": "0.1.0",
    "command": "make",
    "isShellCommand": true,
    "tasks": [
        {
            "taskName": "Makefile",

            // Make this the default build command.
            "isBuildCommand": true,

            // Show the output window only if unrecognized errors occur.
            "showOutput": "always",

            // Pass 'all' as the build target
            "args": ["all"],

            // Use the standard less compilation problem matcher.
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": ["relative", "${workspaceRoot}"],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

Sekarang buka menu FilePreferencesShortcuts Keyboard , dan tambahkan pengikatan tombol berikut untuk tugas build:

// Place your key bindings in this file to overwrite the defaults
[
    { "key": "f8",          "command": "workbench.action.tasks.build" }
]

Sekarang ketika Anda menekan F8Makefile akan dieksekusi, dan kesalahan akan digarisbawahi di editor.

BeeOnRope
sumber
8
PERINGATAN - format file ini telah berubah, dan ini tidak lagi benar. Lihat: go.microsoft.com/fwlink/?LinkId=733558
breakpoint
Kunci default ctrl+alt+buntuk tugas build.
hazard89
Apakah ada perintah atau pengikatan yang akan melompat ke kesalahan berikutnya / sebelumnya di terminal ? Saya memiliki situasi di mana panel "Masalah" memiliki banyak masalah yang tidak relevan (karena VS Code tidak benar-benar tahu bagaimana membangun proyek saya - dan itu akan terlalu terlibat untuk mengajarkannya) tetapi "Terminal" saya adalah penuh kesalahan bermanfaat setelah membangun. Saya hanya perlu pintasan keyboard untuk melompat ke kesalahan berikutnya di "Terminal" ...
Dan L
47

Contoh tugas makefile untuk versi 2.0.0 task.json baru.

Dalam cuplikan di bawah ini, beberapa komentar saya harap akan bermanfaat.

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "<TASK_NAME>",
            "type": "shell",
            "command": "make",
            // use options.cwd property if the Makefile is not in the project root ${workspaceRoot} dir
            "options": {
                "cwd": "${workspaceRoot}/<DIR_WITH_MAKEFILE>"
            },
            // start the build without prompting for task selection, use "group": "build" otherwise
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared"
            },
            // arg passing example: in this case is executed make QUIET=0
            "args": ["QUIET=0"],
            // Use the standard less compilation problem matcher.
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": ["absolute"],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}
attdona
sumber
2
Masih terkini di bulan November 2018. Terima kasih!
TheIntern
Di direktori apa Anda menempatkan ini? Root, ".vs", atau ".vscode"? Seharusnya, root workspace adalah satu-satunya lokasi yang disarankan jika file tersebut juga masuk ke kontrol revisi (yang saya sangat sarankan), tetapi saya tidak bisa membuatnya bekerja.
breakpoint
Yang saya tahu, satu-satunya tempat yang valid saat ini adalah .vscode. Untuk kontrol revisi git, satu kemungkinan adalah menggunakan .gitignorepola seperti !.vscode/tasks.json.
attdona
14

Inilah cara saya mengkonfigurasi VS untuk C ++

Pastikan untuk mengubah jalur yang sesuai ke tempat MinGW Anda dipasang

launch.json

{
   "version": "0.2.0",
   "configurations": [
       {
           "name": "C++ Launch (GDB)",                
           "type": "cppdbg",                         
           "request": "launch",                        
           "targetArchitecture": "x86",                
           "program": "${workspaceRoot}\\${fileBasename}.exe",                 
           "miDebuggerPath":"C:\\mingw-w64\\bin\\gdb.exe", 
           "args": [],     
           "stopAtEntry": false,                  
           "cwd": "${workspaceRoot}",                  
           "externalConsole": true,                  
           "preLaunchTask": "g++"                    
           }
   ]
}

task.json

{
    "version": "0.1.0",
    "command": "g++",
    "args": ["-g","-std=c++11","${file}","-o","${workspaceRoot}\\${fileBasename}.exe"],
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include",
                "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/tr1",
                "C:/mingw-w64/x86_64-w64-mingw32/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=6",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "${workspaceRoot}",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/x86_64-w64-mingw32",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/backward",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include",
                    "C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include/c++/tr1",
                    "C:/mingw-w64/x86_64-w64-mingw32/include"
                ]
            },
            "limitSymbolsToIncludedHeaders": true,
            "databaseFilename": ""
        }
    ],
    "version": 3
}

Referensi:

  1. C / C ++ untuk Kode VS

  2. Templat c_cpp_properties.json

Li Kui
sumber
13
mungkin Anda juga ingin sedikit menjelaskan apa yang sedang dilakukan pengaturan Anda dan tidak hanya menyalin barang
uitty400
2
sulit bagi saya untuk menjelaskan pengaturan saya.
Li Kui
Pastikan untuk mengubah jalur yang sesuai ke tempat MinGW Anda dipasang.
Anthony Lei
Anda juga dapat memasukkan subfolder secara rekursif dengan / ** daripada mengulang berbagai subfolder di"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include"
Lorenz
10

Untuk membangun / menjalankan proyek-proyek C ++ dalam kode VS, Anda secara manual perlu mengkonfigurasi file task.json yang ada di folder .vscode di folder workspace. Untuk membuka task.json , tekan ctrl + shift + P , dan ketik Configure task , dan tekan enter , itu akan membawa Anda ke task.json

Di sini saya memberikan file task.json saya dengan beberapa komentar untuk membuat file lebih dimengerti, Ini dapat digunakan sebagai referensi untuk mengkonfigurasi task.json , saya berharap ini akan berguna

task.json

{
    "version": "2.0.0",

    "tasks": [

        {
            "label": "build & run",     //It's name of the task , you can have several tasks 
            "type": "shell",    //type can be either 'shell' or 'process' , more details will be given below
            "command": "g++",   
            "args": [
                "-g",   //gnu debugging flag , only necessary if you want to perform debugging on file  
                "${file}",  //${file} gives full path of the file
                "-o",   
                "${workspaceFolder}\\build\\${fileBasenameNoExtension}",    //output file name
                "&&",   //to join building and running of the file
                "${workspaceFolder}\\build\\${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build",    //defines to which group the task belongs
                "isDefault": true
            },
            "presentation": {   //Explained in detail below
                "echo": false,
                "reveal": "always",
                "focus": true,
                "panel": "shared",
                "clear": false,
                "showReuseMessage": false
            },
            "problemMatcher": "$gcc"
        },

    ]
}

Sekarang, menyatakan langsung dari dokumentasi tugas kode VS

deskripsi tipe properti:

  • type : tipe tugas. Untuk tugas khusus, ini bisa berupa shell atau proses. Jika shell ditentukan, perintah diartikan sebagai perintah shell (misalnya: bash, cmd, atau PowerShell). Jika proses ditentukan, perintah diartikan sebagai proses untuk mengeksekusi.

Perilaku terminal dapat dikontrol menggunakan properti presentasi di task.json . Menawarkan properti berikut:

  • mengungkapkan : Mengontrol apakah panel Terminal Terpadu dibawa ke depan. Nilai yang valid adalah:

    • selalu - Panel selalu dibawa ke depan. Ini standarnya
    • never - Pengguna harus secara eksplisit membawa panel terminal ke depan menggunakan perintah View> Terminal (Ctrl + `).
    • silent - Panel terminal dibawa ke depan hanya jika output tidak dipindai untuk kesalahan dan peringatan.
  • fokus : Mengontrol apakah terminal mengambil fokus input atau tidak. Default salah.

  • echo : Mengontrol apakah perintah yang dieksekusi digema di terminal. Default itu benar.
  • showReuseMessage : Mengontrol apakah akan menunjukkan "Terminal akan digunakan kembali oleh tugas, tekan tombol apa saja untuk menutupnya" pesan.
  • panel : Mengontrol apakah instance terminal dibagi antara tugas berjalan. Nilai yang mungkin adalah:
    • shared : Terminal dibagi dan output dari menjalankan tugas lain ditambahkan ke terminal yang sama.
    • berdedikasi : Terminal didedikasikan untuk tugas tertentu. Jika tugas itu dieksekusi lagi, terminal digunakan kembali. Namun, output dari tugas yang berbeda disajikan di terminal yang berbeda.
    • baru : Setiap pelaksanaan tugas itu menggunakan terminal bersih baru.
  • clear: Mengontrol apakah terminal dikosongkan sebelum tugas ini dijalankan. Default salah.
joker007
sumber
9

Karena frustrasi karena kurangnya dokumentasi yang jelas, saya telah membuat proyek Mac di github yang seharusnya hanya berfungsi (baik membangun dan debugging):

contoh vscode-mac-c

Perhatikan bahwa ini memerlukan ekstensi XCode dan VSCode Microsoft cpptools.

Saya berencana untuk melakukan hal yang sama untuk Windows dan linux (kecuali Microsoft menulis dokumentasi yang layak terlebih dahulu ...).

peegee123
sumber
8

Pertama-tama, ekstensi goto (Ctrl + Shift + X) dan instal 2 ekstensi:

  1. Pelari Kode
  2. C / C ++

Kemudian, muat ulang Kode VS dan pilih tombol putar di bagian atas sudut kanan program Anda berjalan di terminal output. Anda dapat melihat output dengan Ctrl + Alt + N. Untuk mengubah fitur pengaturan pengguna goto lainnya. masukkan deskripsi gambar di sini

Nisan Chhetri
sumber
Ini adalah pengulangan dari jawaban sebelumnya.
JDługosz
5

Jika proyek Anda memiliki konfigurasi CMake, cukup mudah untuk menyiapkan VSCode, mis. Setup tasks.jsonseperti di bawah ini:

{
    "version": "0.1.0",
    "command": "sh",
    "isShellCommand": true,
    "args": ["-c"],
    "showOutput": "always",
    "suppressTaskName": true,
    "options": {
        "cwd": "${workspaceRoot}/build"
    },
    "tasks": [
        {
            "taskName": "cmake",
            "args": ["cmake ."]
        },
        {
            "taskName": "make",
            "args" : ["make"],
            "isBuildCommand": true,
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": "absolute",
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

Ini mengasumsikan bahwa ada folder builddi root ruang kerja dengan konfigurasi CMake.

Ada juga ekstensi integrasi CMake yang menambahkan perintah "CMake build" ke VScode.

PS! Ini problemMatcheradalah setup untuk clang-builds. Untuk menggunakan GCC Saya percaya Anda perlu mengubah fileLocationke relative, tapi saya belum diuji ini.

larsmoa
sumber
5

Inilah cara saya mengonfigurasi VS untuk C ++ menggunakan g ++ compiler dan berfungsi dengan baik termasuk opsi debug:

file task.json

{
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    // compiles and links with debugger information
    "args": ["-g", "-o", "hello.exe", "hello.cpp"],
    // without debugger information
    // "args": ["-o", "hello.exe", "hello.cpp"],
    "showOutput": "always"
}

file launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (Windows)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/hello.exe",
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe",
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "externalConsole": false,
            "visualizerFile": "${workspaceRoot}/my.natvis"
        }
    ]
}

Saya juga memiliki ekstensi 'C / C ++ untuk Visual Studio Code' yang diinstal dalam VS Code

Vlad Bezden
sumber
Saya dapat mengkompilasi, tetapi tidak men-debug C / C ++ pada VSCode. Artikel ini mengatakan debugging hanya didukung di linux. Baru-baru ini saya membuat utas ini untuk hal yang sama. Akan menghargai bantuan apa pun ...
Mahesha999
5

Masalah mendasar di sini adalah bahwa membangun dan menautkan program C ++ sangat bergantung pada sistem build yang digunakan. Anda perlu mendukung tugas-tugas berbeda berikut, menggunakan beberapa kombinasi plugin dan kode khusus:

  1. Umum dukungan bahasa C ++ untuk editor. Ini biasanya dilakukan dengan menggunakan ms-vscode.cpptools, yang kebanyakan orang harapkan juga menangani banyak hal lain, seperti membangun dukungan. Biarkan saya menghemat waktu Anda: tidak. Namun, Anda mungkin tetap menginginkannya.

  2. Bangun, bersihkan, dan bangun kembali tugas. Di sinilah pilihan Anda membangun sistem menjadi masalah besar. Anda akan menemukan plugin untuk hal-hal seperti CMake dan Autoconf (tuhan membantu Anda), tetapi jika Anda menggunakan sesuatu seperti Meson dan Ninja, Anda harus menulis beberapa skrip pembantu, dan mengonfigurasi file "tugas.json" khusus untuk tangani ini. Microsoft telah benar-benar mengubah segalanya tentang file itu selama beberapa versi terakhir, hingga apa yang seharusnya disebut dan tempat (ya, placeS) dapat pergi, untuk mengatakan tidak ada yang benar-benar mengubah format. Lebih buruk lagi, mereka telah SORT OF terus mundur kompatibilitas, untuk memastikan untuk menggunakan kunci "versi" untuk menentukan varian mana yang Anda inginkan. Lihat detailnya di sini:

https://code.visualstudio.com/docs/editor/tasks

... tetapi perhatikan konflik dengan:

https://code.visualstudio.com/docs/languages/cpp

PERINGATAN: DALAM SEMUA JAWABAN DI BAWAH INI, APA SAJA YANG DIMULAI DENGAN TAG "VERSI" DI BAWAH 2.0.0 ADALAH OBSOLETE.

Inilah hal terdekat yang saya miliki saat ini. Perhatikan bahwa saya menendang sebagian besar pengangkatan ke skrip, ini tidak benar-benar memberi saya entri menu yang bisa saya jalani, dan tidak ada cara yang baik untuk memilih antara debug dan rilis tanpa hanya membuat tiga entri eksplisit di sini. Dengan semua itu, inilah yang bisa saya toleransi sebagai file .vscode / task.json saya saat ini:

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
    {
        "label": "build project",
        "type": "shell",
        "command": "buildscripts/build-debug.sh",
        "args": [],

        "group": {
            "kind": "build",
            "isDefault": true
        },
        "presentation": {
            // Reveal the output only if unrecognized errors occur.
            "echo": true,
            "focus": false,
            "reveal": "always",
            "panel": "shared"
        },

        // Use the standard MS compiler pattern to detect errors, warnings and infos
        "options": {
            "cwd": "${workspaceRoot}"
        },
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}/DEBUG"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    },
    {
        "label": "rebuild project",
        "type": "shell",
        "command": "buildscripts/rebuild-debug.sh",
        "args": [],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "presentation": {
            // Reveal the output only if unrecognized errors occur.
            "echo": true,
            "focus": false,
            "reveal": "always",
            "panel": "shared"
        },

        // Use the standard MS compiler pattern to detect errors, warnings and infos
        "options": {
            "cwd": "${workspaceRoot}"
        },
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}/DEBUG"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    },
    {
        "label": "clean project",
        "type": "shell",
        "command": "buildscripts/clean-debug.sh",
        "args": [],

        "group": {
            "kind": "build",
            "isDefault": true
        },
        "presentation": {
            // Reveal the output only if unrecognized errors occur.
            "echo": true,
            "focus": false,
            "reveal": "always",
            "panel": "shared"
        },

        // Use the standard MS compiler pattern to detect errors, warnings and infos
        "options": {
            "cwd": "${workspaceRoot}"
        },
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["relative", "${workspaceRoot}/DEBUG"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    }
]

}

Perhatikan bahwa, secara teori, file ini seharusnya berfungsi jika Anda meletakkannya di root ruang kerja, sehingga Anda tidak terjebak memeriksa file dalam direktori tersembunyi (.vscode) ke dalam sistem kontrol revisi Anda. Saya belum melihat itu benar-benar berfungsi; mengujinya, tetapi jika gagal, masukkan ke dalam .vscode. Either way, IDE akan menggerutu jika tidak ada di sana. (Ya, pada saat ini, ini berarti saya telah dipaksa untuk memeriksa .vscode ke dalam subversi, yang saya tidak suka.) Perhatikan bahwa skrip build saya (tidak ditampilkan) cukup membuat (atau membuat ulang) direktori DEBUG menggunakan, di kasingku, meson, dan bangun di dalamnya (menggunakan, dalam kasingku, ninja).

  1. Jalankan, debug, pasang, hentikan. Ini adalah serangkaian tugas lain, didefinisikan dalam "launch.json". Atau setidaknya mereka dulu. Microsoft telah membuat hash dokumentasi, saya bahkan tidak yakin lagi.
breakpoint
sumber
Inilah file build-scripts / build-debug.sh, sebagai contoh. Idealnya, ini akan mewarisi konteks build (debug, rilis, profiling, dll.) Tetapi saya tidak dapat mengetahui bagaimana Code mengelola itu, jika bahkan memiliki konsep. Maafkan pemformatan; pergi, StackOverflow, pergi. #! / bin / bash if [! -d "DEBUG"]; lalu mkdir DEBUG meson DEBUG fi cd DEBUG ninja if [$? -eq 0]; lalu keluar 0 lagi keluar $? fi
breakpoint
Oh, sekali lagi: tekan CTRL-SHIFT-B setelah ini di tempat untuk menarik tugas pembangunan. Saya benar-benar lebih suka menu utama yang tepat penuh dengan ini, tapi saya belum tahu bagaimana melakukannya.
breakpoint
4

Dengan Kode VS yang diperbarui, Anda dapat melakukannya dengan cara berikut:

  1. Hit ( Ctrl+ P) dan ketik:

    ext install cpptools
    
  2. Buka folder ( Ctrl+ K& Ctrl+ O) dan buat file baru di dalam folder dengan ekstensi .cpp (mis: hello.cpp ):

  3. Ketikkan kode Anda dan tekan save.

  4. Tekan ( Ctrl+ Shift+ Pdan ketik, Configure task runnerlalu pilih otherdi bagian bawah daftar.

  5. Buat file batch di folder yang sama dengan nama build.bat dan sertakan kode berikut ke tubuh file:

    @echo off
    call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64     
    set compilerflags=/Od /Zi /EHsc
    set linkerflags=/OUT:hello.exe
    cl.exe %compilerflags% hello.cpp /link %linkerflags%
    
  6. Edit file task.json sebagai berikut dan simpan :

    {
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "build.bat",
    "isShellCommand": true,
    //"args": ["Hello World"],
    "showOutput": "always"
    }
    
  7. Tekan ( Ctrl+ Shift+ Buntuk menjalankan tugas Bangun. Ini akan membuat file .obj dan .exe untuk proyek.

  8. Untuk men-debug proyek, Tekan F5dan pilih C ++ (Windows) .

  9. Di file launch.json , edit baris berikut dan simpan file:

    "program": "${workspaceRoot}/hello.exe",
    
  10. Hit F5.

Poornamith
sumber
Saya menggunakan VSC terbaru. Anda kehilangan saya di Langkah 4. Mengkonfigurasi pelari tugas tidak tersedia.
Louis
2

Anda dapat merujuk pada inti terbaru ini yang memiliki 2.0.0tugas versi untuk Visual Studio Code, https://gist.github.com/akanshgulati/56b4d469523ec0acd9f6f59918a9e454

Anda dapat dengan mudah mengkompilasi dan menjalankan setiap file tanpa memperbarui tugas. Ini generik dan juga membuka terminal untuk entri input.

Akansh
sumber
2

Dapat menggunakan Extension Code Runner untuk menjalankan kode dengan ikon main di atas Kanan dengan tombol pintasan: Ctrl+Alt+Ndan untuk membatalkan Ctrl+Alt+M. Tetapi secara default ini hanya menampilkan output dari program tetapi untuk menerima input Anda perlu mengikuti beberapa langkah:

Ctrl +, dan kemudian menu pengaturan terbuka dan Extensions> Run Code Configuration gulir ke bawah atributnya dan temukan Edit di settings.json klik padanya dan tambahkan kode berikut ini:

{ "code-runner.runInTerminal": true }

niks
sumber
Ctrl + zoom in untuk saya
MM
itu ctrl koma bukan ctrl plus untuk membuka pengaturan
Ashley Fernandes
1

Sekarang ada ekstensi bahasa C / C ++ dari Microsoft. Anda dapat menginstalnya dengan membuka "buka cepat" ( Ctrl+ p) dan mengetik:

ext install cpptools

Anda dapat membacanya di sini:

https://blogs.msdn.microsoft.com/vcblog/2016/03/31/cc-extension-for-visual-studio-code/

Ini sangat mendasar, pada Mei 2016.

Eliot
sumber
2
Ini adalah jawaban untuk tautan saja . Anda harus memperluas jawaban Anda untuk memasukkan sebanyak mungkin informasi di sini, dan menggunakan tautan hanya untuk referensi.
jhpratt