Visual Studio Code'u C ++ kodunu derleyecek şekilde nasıl ayarlarım?


222

Microsoft'un Visual Studio Kod düzenleyicisi oldukça güzel, ancak C ++ projeleri oluşturmak için varsayılan bir desteği yok.

Bunu yapmak için nasıl yapılandırabilirim?


12
Linux altında C ++ kodunu derlemek için birçok cevap var, ama Windows'a ne olacak?
Charles Milette

5
Böyle basit bir şey ve henüz bunu pencerelerde yapmak için yararlı bir kaynak yoktur. Ve ms cpptools uzantısı, bunun hakkında konuşma. Sanırım sadece hayal kırıklığına katkıda bulunmak. Hiçbir şey yapmaz.
Kshitij

Çözüm bulan var mı? Derleme mümkün, ancak VSCode C / C ++ hata ayıklama. Bu makalede, hata ayıklama yalnızca linux üzerinde desteklenmektedir. Ayrıca son zamanlarda benim yarattığım bu aynı ilişkin konu. Herhangi bir yardım takdir
edecektir

Yanıtlar:


134

C ++ kodunu derlemenin ve çalıştırmanın çok daha kolay bir yolu var, yapılandırmaya gerek yok:

  1. Code Runner Uzantısını Yükleme
  2. C ++ kod dosyanızı Metin Düzenleyicisi'nde açın, sonra kısayolu kullanın Ctrl+Alt+Nveya tuşuna F1basıp seçin / yazın Run Codeveya Metin Düzenleyicisi'ne sağ tıklayın ve ardından Run Codeiçerik menüsünü tıklayın , kod derlenecek ve çalıştırılacak ve çıktı Çıktı Penceresi.

Ayrıca, farklı C ++ derleyicilerini kullanarak config.json'daki yapılandırmayı istediğiniz gibi güncelleyebilirsiniz, C ++ için varsayılan yapılandırma aşağıdaki gibidir:

"code-runner.executorMap": {
    "cpp": "g++ $fullFileName && ./a.out"
}

4
Çıktı penceremde sıkışmış running blablabla. İstem yok, hiçbir şey. Kodun çalışmasını nasıl durdurabilirim?
Hichigaya Hachiman

12
, Kullanımı kod çalışmasını durdurmak için Ctrl+Alt+M. Verileri okumak için stdin'i kullanmak üzere ayarlamak için File-> Preference-> öğesine gidebilirsiniz . Daha fazla bilgi için github.com/formulahendry/vscode-code-runner/issues/91Settings"code-runner.runInTerminal": true
Jun Han

1
Çıkış penceresinde çalıştırmak terminal girişini önler. runInTerminal gerekli görünüyor ...
Andrew Wolfe

Bir hata alıyorum - "hata: #
include'da

9
Tanıttığınız uzantının yazarı olduğunuzu açıklamalısınız.
Codebling

86

Derleme görevleri projeye özgüdür. Yeni bir proje oluşturmak için Visual Studio Code'da bir dizin açın.

Buradaki talimatları uygulayarak Ctrl+ Shift+ tuşlarına basın P, yazın Configure Tasks, seçin ve tuşuna basın Enter.

Task.json dosyası açılacaktır. Aşağıdaki derleme dosyasını dosyaya yapıştırın ve kaydedin:

{
    "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
                }
            }
        }
    ]
}

Şimdi DosyaTercihlerKlavye Kısayolları menüsüne gidin ve oluşturma görevi için aşağıdaki anahtar bağlamayı ekleyin:

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

Şimdi tuşuna bastığınızda F8Makefile yürütülür ve editörde hataların altı çizilir.


8
UYARI - bu dosyanın biçimi değişti ve bu artık doğru değil. Bakınız: go.microsoft.com/fwlink/?LinkId=733558
kesme noktası

Varsayılan anahtar ctrl+alt+boluşturma görevi içindir.
danger89

Terminalde sonraki / önceki hataya atlayacak bir komut veya bağlama var mı? "Sorunlar" bölmesinde alakasız sorunları bir grup var (VS Kod gerçekten benim proje oluşturmak için nasıl bilmiyor - ve bunu öğretmek için çok dahil olacak) ama benim "Terminal" olduğu bir durum var bir derlemeden sonra yararlı hatalarla dolu. Sadece "Terminal" bir sonraki hataya atlamak için bir klavye kısayoluna ihtiyacım var ...
Dan L

47

Yeni 2.0.0 görevleri için bir makefile görev örneği. Json sürümü.

Aşağıdaki yorumda bazı yorumların yararlı olacağını umuyorum.

{
    "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
                }
            }
        }
    ]
}

2
Kasım 2018'de hala güncel. Teşekkürler!
TheIntern

Bunu hangi dizine yerleştirdiniz? Kök, ".vs" veya ".vscode" mu? Sözde, dosya da revizyon denetimine giriyorsa (ki kesinlikle şiddetle tavsiye ediyorum) çalışma alanı kökü sadece önerilen konumdur, ancak işe yaramadı.
kırılma noktası

Bildiğim kadarıyla, şu anda tek geçerli yer .vscode. Git revizyon kontrolü için bir olasılık, .gitignorebenzer bir desen için kullanmaktır !.vscode/tasks.json.
attdona

14

İşte VS benim C ++ için nasıl yapılandırılmış

MinGW'nizin kurulu olduğu yere uygun yolları değiştirdiğinizden emin olun

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++"                    
           }
   ]
}

tasks.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
}

Referans:

  1. VS Kodu için C / C ++

  2. c_cpp_properties.json şablonu


13
belki de ayarlarınızın ne yaptığını biraz açıklamak istersiniz ve sadece yapıştırma malzemelerini kopyalamakla
kalmazsınız

2
ayarlarımı açıklamak benim için zor.
Li Kui

MinGW'nizin kurulu olduğu yere uygun yolları değiştirdiğinizden emin olun.
Anthony Lei

Çeşitli alt klasörleri tekrarlamak yerine / ** ile alt klasörleri özyinelemeli olarak da ekleyebilirsiniz"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include"
Lorenz

10

VS kodu C ++ projeleri oluşturmak / çalıştırmak için, el ile çalışma alanı klasöründe .vscode klasöründe olan task.json dosyasını yapılandırmanız gerekir . Açık için tasks.json basın ctrl + shift + P ve yazın yapılandırma görevleri ve basın girmek , bu götürecektir tasks.json

Burada , dosyayı daha anlaşılır hale getirmek için bazı yorumlarla benim görevler.json dosyasını sağlıyorum , görevleri.json yapılandırmak için bir referans olarak kullanılabilir , umarım faydalı olacaktır

tasks.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"
        },

    ]
}

Şimdi, doğrudan VS kodu görevleri belgelerinden belirtmek

type özelliği açıklaması :

  • type : Görevin türü. Özel bir görev için, bu kabuk veya işlem olabilir. Kabuk belirtilirse, komut bir kabuk komutu olarak yorumlanır (örneğin: bash, cmd veya PowerShell). İşlem belirtilirse, komut yürütülecek bir işlem olarak yorumlanır.

Terminalin davranışı, task.json içindeki sunum özelliği kullanılarak kontrol edilebilir . Aşağıdaki özellikleri sunar:

  • ortaya : Entegre Terminal panelinin öne getirilip getirilmediğini kontrol eder. Geçerli değerler:

    • always - Panel her zaman öne çıkarılır. Bu varsayılan
    • asla - Kullanıcı Görünüm> Terminal komutunu (Ctrl + `) kullanarak terminal panelini açıkça öne getirmelidir.
    • sessiz - Terminal paneli yalnızca, çıktı hatalar ve uyarılar için taranmazsa öne çıkarılır.
  • focus : Terminalin giriş odağı alıp almadığını kontrol eder. Varsayılan, false değeridir.

  • echo : Yürütülen komutun terminalde yankılanıp yanılmadığını kontrol eder. Varsayılan değer true.
  • showReuseMessage : "Terminal görevler tarafından yeniden kullanılacak, kapatmak için herhangi bir tuşa basın" mesajının gösterilip gösterilmeyeceğini denetler.
  • panel : Terminal örneğinin görev çalıştırmaları arasında paylaşılıp paylaşılmadığını denetler. Olası değerler:
    • paylaşılan : Terminal paylaşılır ve diğer görev çalışmalarının çıktıları aynı terminale eklenir.
    • özel : Terminal belirli bir göreve adanmıştır. Bu görev yeniden yürütülürse, terminal yeniden kullanılır. Ancak, farklı bir görevin çıktısı farklı bir terminalde sunulur.
    • Yeni : bu görevin her yürütme yeni temiz terminali kullanıyor.
  • clear: Bu görev yürütülmeden önce terminalin silinip temizlenmeyeceğini denetler. Varsayılan, false değeridir.

9

Açık dokümantasyon eksikliğindeki hayal kırıklığı dışında, github üzerinde sadece çalışması gereken bir Mac projesi oluşturdum (hem bina hem de hata ayıklama):

vscode-Mac-c-Örnek

XCode ve VSCode Microsoft cpptools uzantısını gerektirdiğini unutmayın.

Aynı şeyi Windows ve linux için de yapmayı planlıyorum (Microsoft önce iyi belgeler yazmadıkça ...).


8

Her şeyden önce, uzantılara git (Ctrl + Shift + X) ve 2 uzantı yükleyin:

  1. Kod Çalıştırıcı
  2. C / C ++

Ardından, VS Kodunu yeniden yükleyin ve programınızın çıkış terminalinde çalıştırdığı sağ köşenin üstündeki bir yürüt düğmesini seçin. Çıktıyı Ctrl + Alt + N ile görebilirsiniz. Diğer özellikleri değiştirmek için kullanıcı ayarlarına gidin. resim açıklamasını buraya girin


Bu önceki cevapların tekrarıdır.
JDługosz

5

Projenizde bir CMake yapılandırması varsa, VSCode'u kurmak oldukça kolaydır, örneğin tasks.jsonaşağıdaki gibi kurulum :

{
    "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
                }
            }
        }
    ]
}

Bu build, çalışma alanının kökünde CMake yapılandırmasına sahip bir klasör olduğunu varsayar .

VScode'a "CMake derleme" komutu ekleyen bir CMake entegrasyon uzantısı da var.

PS! problemMatcherİçin kurgusunda clang-builds. Kullanmak için GCC ben değiştirmeniz gereken inanmak fileLocationiçin relative, ama bu test etmedim.


5

İşte nasıl VS ++ için g ++ derleyici kullanarak yapılandırılmış ve hata ayıklama seçenekleri de dahil olmak üzere harika çalışıyor:

task.json dosyası

{
    "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"
}

launch.json dosyası

{
    "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"
        }
    ]
}

Ayrıca VS Kodu yüklü 'Visual Studio Code için C / C ++' uzantısı var


Derleme mümkün, ancak VSCode C / C ++ hata ayıklama. Bu makalede, hata ayıklama yalnızca linux üzerinde desteklenmektedir. Ayrıca son zamanlarda benim yarattığım bu aynı ilişkin konu. Herhangi bir yardım takdir
edecektir

5

Burada temel sorun, bir C ++ programı oluşturmak ve bağlamak büyük ölçüde kullanılan derleme sistemine bağlıdır. Bazı eklenti ve özel kod kombinasyonlarını kullanarak aşağıdaki farklı görevleri desteklemeniz gerekir:

  1. Editör için genel C ++ dil desteği. Bu genellikle ms-vscode.cpptools kullanılarak yapılır, çoğu insan da yapı desteği gibi diğer birçok şeyi de ele almayı bekler. Size biraz zaman kazandıracağım: öyle değil. Ancak, muhtemelen yine de isteyeceksiniz.

  2. Görevler oluşturun, temizleyin ve yeniden oluşturun. Yapı sistemi seçiminiz büyük bir anlaşma haline gelir. CMake ve Autoconf (tanrı size yardımcı olur) gibi şeyler için eklentiler bulacaksınız, ancak Meson ve Ninja gibi bir şey kullanıyorsanız, bazı yardımcı komut dosyaları yazmanız ve özel bir "görevleri.json" dosyası yapılandırmanız gerekir. Bunları halledin. Microsoft, son birkaç sürümde bu dosya hakkında her şeyi, tam olarak değiştirilmesi gereken yere ve formatı tamamen değiştirecek bir şey söylemek için gidebileceği yerlere (evet, placeS) kadar tamamen değiştirdi. Daha da kötüsü, SORT OF geriye doğru uyumluluğu koruduklarından, istediğiniz sürümü belirtmek için "sürüm" tuşunu kullandığınızdan emin olun. Ayrıntıları burada görebilirsiniz:

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

... ancak şunlarla çakışmaya dikkat edin:

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

UYARI: AŞAĞIDAKİ TÜM CEVAPLARDA, 2.0.0 AŞAĞIDAKİ "VERSİYON" ETİKETİ İLE BAŞLADIĞI BİR ŞEY OBSOLET'tir.

İşte şu an sahip olduğum en yakın şey. Komut dosyalarına yapılan ağır kaldırma işlemlerinin çoğunu başlattığımı unutmayın, bu gerçekten yaşayabileceğim herhangi bir menü girişi vermiyor ve hata ayıklama ve serbest bırakma arasında yalnızca üç açık giriş yapmadan seçim yapmanın iyi bir yolu yok. buraya. Tüm bu söylenen ile, şu anda benim .vscode / görevleri.json dosya olarak tolere edebilirsiniz:

{
// 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
            }
        }
    }
]

}

Teoride, bu dosyanın çalışma alanı köküne koyarsanız çalışması beklenir, böylece gizli dizinlerdeki (.vscode) dosyaları revizyon kontrol sisteminize kontrol edemezsiniz. Bunun gerçekten işe yaradığını henüz görmedim; test edin, ancak başarısız olursa .vscode içine koyun. Her iki durumda da, IDE zaten orada değilse kaltak olacaktır. (Evet, şu anda bu, .vscode'u alt sürüme kontrol etmeye zorlandığım anlamına geliyor, ki bu mutlu değilim.) Yapı komut dosyalarının (gösterilmiyor), benim durumum, meson ve onun içinde inşa (benim durumumda ninja kullanarak).

  1. Koş, hata ayıkla, ekle, durdur. Bunlar, "launch.json" da tanımlanan başka bir görev kümesidir. Ya da en azından öyleydi. Microsoft belgelerin böyle bir karma yaptı, artık emin değilim.

Örnek olarak build-scripts / build-debug.sh dosyası. İdeal olarak bunlar yapı bağlamını (hata ayıklama, serbest bırakma, profil oluşturma vb.) Devralır, ancak kavram olsa bile Code'un bunu nasıl yönettiğini anlayamıyorum. Biçimlendirmeyi affedin; git, StackOverflow, git. #! / bin / bash [! -d "DEBUG"]; sonra mkdir DEBUG meson DEBUG fi cd DEBUG ninja eğer [$? -eq 0]; sonra 0 çıkış $ çıkış? fi
kesme noktası

Oh, tekrar: Bu, yapı görevlerini almak için CTRL-SHIFT-B tuşlarına basın. Gerçekten, gerçekten bunlarla dolu uygun bir ana menüyü tercih ederim, ama bunu nasıl yapacağımı henüz çözemedim.
kırılma noktası

4

Güncellenmiş bir VS Kodu ile bunu aşağıdaki şekilde yapabilirsiniz:

  1. ( Ctrl+ P) Tuşuna basın ve şunu yazın:

    ext install cpptools
    
  2. Bir klasör açın ( Ctrl+ K& Ctrl+ O) ve klasörün içinde .cpp (ör: hello.cpp ) uzantılı yeni bir dosya oluşturun :

  3. Kodunuzu yazın ve kaydet'e basın.

  4. ( Ctrl+ Shift+ Tuşlarına basın Pve yazın Configure task runnerve ardından otherlistenin en altında öğesini seçin .

  5. Build.bat adıyla aynı klasörde bir toplu iş dosyası oluşturun ve dosyanın gövdesine aşağıdaki kodu ekleyin:

    @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. Düzenleme task.json dosyası aşağıdaki gibi ve buna kaydet :

    {
    // 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. Derleme görevini çalıştırmak için ( Ctrl+ Shift+ Bdüğmesine basın. Bu , proje için .obj ve .exe dosyalarını oluşturur.

  8. Projede hata ayıklamak için, C ++ 'ı (Windows) tıklayınF5 ve seçin .

  9. Gelen launch.json dosyasında aşağıdakiler hat ve düzenleme tasarruf dosyasında:

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


En son VSC kullanıyorum. 4. Adımda beni kaybettiniz. Görev çalıştırıcıyı yapılandır kullanılamıyor.
Louis


2

Oynatma simgesi üstte kod çalıştırmak için Extension Code Runner'ı , kısayol tuşu ile sağ ve: tuşlarını Ctrl+Alt+Nkullanarak iptal edebilirsiniz Ctrl+Alt+M. Ancak varsayılan olarak yalnızca program çıktısını gösterir, ancak girdi almak için bazı adımları izlemeniz gerekir:

Ctrl + ve ardından ayarlar menüsü açılır ve Uzantılar> Kod Yapılandırmasını Çalıştırın özelliklerini aşağı kaydırın ve ayarlarda Düzenle'yi bulun. Json üzerine tıklayın ve aşağıdaki kodu ekleyin:

{ "code-runner.runInTerminal": true }


Ctrl + benim için yakınlaştırıyor
MM

ayarları açmak için ctrl virgül değil ctrl artı
Ashley Fernandes

1

Artık Microsoft'tan bir C / C ++ dil uzantısı var. "Hızlı açılan" şeye ( Ctrl+ p) gidip şunu yazarak yükleyebilirsiniz :

ext install cpptools

Burada okuyabilirsiniz:

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

Mayıs 2016 itibariyle çok basit.


2
Bu, yalnızca bağlantıya yönelik sınırlayıcı bir yanıttır . Cevabınızı buraya kadar bilgi içerecek şekilde genişletmeli ve bağlantıyı yalnızca referans olması için kullanmalısınız.
jhpratt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.