C ++ कोड को संकलित करने के लिए मैंने Visual Studio कोड कैसे स्थापित किया?


222

Microsoft का Visual Studio कोड संपादक काफी अच्छा है, लेकिन इसमें C ++ प्रोजेक्ट्स के निर्माण के लिए कोई डिफ़ॉल्ट समर्थन नहीं है।

मैं इसे करने के लिए इसे कैसे कॉन्फ़िगर करूं?


12
लिनक्स के तहत C ++ कोड संकलन के लिए बहुत सारे उत्तर हैं, लेकिन विंडोज के बारे में क्या?
चार्ल्स मिलेट

5
ऐसी बुनियादी चीजें और फिर भी खिड़कियों में ऐसा करने के लिए कोई सहायक संसाधन नहीं है। और एमएस cpptools विस्तार, उस बारे में बात नहीं करते। मुझे लगता है कि यह सिर्फ आपकी हताशा में जोड़ना है। यह कुछ नहीं करता है।
क्षितिज

किसी को भी हल मिल गया? मैं संकलन करने में सक्षम हूं, लेकिन VSCode पर C / C ++ डीबग नहीं कर रहा हूं। यह लेख कहता है कि डिबगिंग केवल लिनक्स पर समर्थित है। हाल ही में मैंने उसी के लिए यह धागा बनाया है । किसी भी मदद की सराहना करेंगे ...
महेश999

जवाबों:


133

C ++ कोड को संकलित करने और चलाने के लिए बहुत आसान तरीका है, किसी कॉन्फ़िगरेशन की आवश्यकता नहीं है:

  1. कोड रनर एक्सटेंशन स्थापित करें
  2. टेक्स्ट एडिटर में अपनी सी ++ कोड फ़ाइल खोलें, फिर शॉर्टकट का उपयोग करें Ctrl+Alt+N, या F1फिर प्रेस / टाइप करें Run Code, या टेक्स्ट एडिटर पर राइट क्लिक करें और फिर Run Codeसंदर्भ मेनू में क्लिक करें , कोड संकलित किया जाएगा और चलाया जाएगा, और आउटपुट को दिखाया जाएगा। आउटपुट विंडो।

इसके अलावा आप सेटिंग्स को कॉन्फ़िगर कर सकते हैं। अलग-अलग सी ++ कंपाइलर का उपयोग करके। जैसा कि आप चाहते हैं, सी ++ के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन नीचे दिया गया है:

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

4
मेरा आउटपुट विंडो पर अटक गया है running blablabla। कोई संकेत नहीं, कुछ नहीं। मैं कोड चलाना भी कैसे रोकूं?
Hichigaya Hachiman

11
कोड चलाना बंद करने के लिए, उपयोग करें Ctrl+Alt+M। डेटा पढ़ने के लिए स्टडिन का उपयोग करने के लिए, आप सेट करने के लिए File-> Preference- -> पर जा सकते हैं । अधिक जानकारी के लिए, आप github.com/formulahendry/vscode-code-runner/issues/91Settings"code-runner.runInTerminal": true
Jun Han

1
आउटपुट विंडो में रनिंग टर्मिनल इनपुट को रोकता है। runInTerminal आवश्यक लगता है ...
एंड्रयू वुल्फ

एक त्रुटि - "त्रुटि: #include में खाली फ़ाइल नाम"
गौरव

9
आपको यह बताना चाहिए कि आप जिस एक्सटेंशन को बढ़ावा दे रहे हैं उसके लेखक आप हैं।
कोडबलिंग

86

निर्माण कार्य परियोजना विशिष्ट हैं। एक नया प्रोजेक्ट बनाने के लिए विजुअल स्टूडियो कोड में एक डायरेक्टरी खोलें।

यहां दिए गए निर्देशों का पालन ​​करते हुए , Ctrl+ Shift+ Pटाइप करें Configure Tasks, इसे चुनें और दबाएं Enter

कार्य। Json फ़ाइल खोली जाएगी। फ़ाइल में निम्न बिल्ड स्क्रिप्ट पेस्ट करें, और इसे सहेजें:

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

अब मेनू फ़ाइल पर जाएंप्राथमिकताएँकीबोर्ड शॉर्टकट , और बिल्ड कार्य के लिए निम्नलिखित कुंजी बंधन जोड़ें:

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

अब जब आप प्रेस F8करेंगे तो मेकफाइल निष्पादित हो जाएगा, और त्रुटियों को संपादक में रेखांकित किया जाएगा।


8
चेतावनी - इस फ़ाइल का प्रारूप बदल गया है, और यह अब सही नहीं है। देखें: go.microsoft.com/fwlink/?LinkId=733558
ब्रेकप्वाइंट

डिफ़ॉल्ट कुंजी ctrl+alt+bबिल्ड कार्य के लिए है।
खतरे '

क्या कोई कमांड या बाध्यकारी है जो टर्मिनल में अगले / पिछले त्रुटि पर कूद जाएगा ? मेरे पास एक ऐसी स्थिति है जहां "समस्याएं" फलक में अप्रासंगिक मुद्दों का एक समूह है (क्योंकि वीएस कोड वास्तव में मेरी परियोजना का निर्माण करने का तरीका नहीं जानता है - और यह इसे सिखाने के लिए बहुत अधिक तरीका होगा) लेकिन मेरा "टर्मिनल" है एक निर्माण के बाद उपयोगी त्रुटियों से भरा। मुझे "टर्मिनल" में अगली त्रुटि पर कूदने के लिए बस एक कीबोर्ड शॉर्टकट की आवश्यकता है ...
Dan L

47

नए 2.0.0 कार्य.जॉन संस्करण के लिए एक मेकफाइल कार्य उदाहरण।

कुछ टिप्पणियों के नीचे स्निपेट में मुझे आशा है कि वे उपयोगी होंगे।

{
    "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
अभी भी नवंबर 2018 में तारीख तक। धन्यवाद!
TheIntern

आपने इसे किस निर्देशिका में रखा? जड़, ".vs", या ".vscode"? माना जाता है कि, कार्यक्षेत्र रूट एकमात्र अनुशंसित स्थान है यदि फ़ाइल भी संशोधन नियंत्रण (जो मैं दृढ़ता से अनुशंसा करता हूं) में जा रहा हूं, लेकिन मुझे वह काम नहीं मिला।
ब्रेकप्वाइंट

मैं जो जानता हूं, उसके लिए फिलहाल एकमात्र वैध जगह है .vscode। गिट रिवीजन नियंत्रण के लिए एक संभावना है .gitignoreजैसे पैटर्न के लिए उपयोग करना !.vscode/tasks.json
attdona

14

यहां बताया गया है कि मैंने अपने वीएस को सी ++ के लिए कैसे कॉन्फ़िगर किया

अपने MinGW को स्थापित करने के लिए विनियोग पथ को बदलना सुनिश्चित करें

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
}

संदर्भ:

  1. वीएस कोड के लिए सी / सी ++

  2. c_cpp_properties.json टेम्पलेट


13
शायद आप यह भी समझाना चाहते हैं कि आपकी सेटिंग्स क्या कर रही हैं और पेस्ट पेस्ट सामान की नकल न करें
uitty400

2
मेरे लिए अपनी सेटिंग समझाना कठिन है।
ली कुई

जहां आपके MinGW स्थापित है, वहां विनियोग पथ बदलना सुनिश्चित करें।
एंथनी लेई

आप विभिन्न सबफ़ोल्डर्स को दोहराने के बजाय / ** के साथ सबफ़ोल्डर्स को भी पुन: सम्मिलित कर सकते हैं"C:/mingw-w64/lib/gcc/x86_64-w64-mingw32/7.2.0/include"
लॉरेंज

10

VS कोड में C ++ प्रोजेक्ट्स को बनाने / चलाने के लिए, आपको मैन्युअल रूप से कार्य.जॉन फ़ाइल को कॉन्फ़िगर करने की आवश्यकता है जो कार्यस्थान फ़ोल्डर में .vscode फ़ोल्डर में है। खुला करने के लिए tasks.json , प्रेस ctrl + shift + पी , और प्रकार कॉन्फ़िगर कार्यों , और प्रेस दर्ज है, यह के लिए ले जाएगा tasks.json

यहाँ मैं अपने कार्यों को प्रदान कर रहा हूँ । फ़ाइल को और अधिक समझने के लिए कुछ टिप्पणियों के साथ जजसन फ़ाइल, इसे कार्यों को कॉन्फ़िगर करने के लिए एक संदर्भ के रूप में इस्तेमाल किया जा सकता है। जेसन , मुझे आशा है कि यह उपयोगी होगा

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

    ]
}

अब, वीएस कोड कार्य प्रलेखन से सीधे बताते हुए

प्रकार की संपत्ति का विवरण :

  • प्रकार : कार्य का प्रकार। एक कस्टम कार्य के लिए, यह या तो शेल या प्रक्रिया हो सकती है। यदि शेल निर्दिष्ट किया गया है, तो कमांड को शेल कमांड के रूप में व्याख्या की जाती है (उदाहरण के लिए: बैश, सेमी, या पॉवरशेल)। यदि प्रक्रिया निर्दिष्ट है, तो कमांड को निष्पादित करने के लिए एक प्रक्रिया के रूप में व्याख्या की जाती है।

टर्मिनल का व्यवहार कार्यों में प्रस्तुति की संपत्ति का उपयोग करके नियंत्रित किया जा सकता है ।json । यह निम्नलिखित गुण प्रदान करता है:

  • प्रकट : नियंत्रित करता है कि क्या एकीकृत टर्मिनल पैनल को सामने लाया गया है। मान्य मान हैं:

    • हमेशा - पैनल को हमेशा सामने लाया जाता है। यह डिफ़ॉल्ट है
    • कभी नहीं - उपयोगकर्ता को स्पष्ट रूप से व्यू> टर्मिनल कमांड (Ctrl + `) का उपयोग करके टर्मिनल पैनल को सामने लाना होगा।
    • चुप - टर्मिनल पैनल को केवल तभी सामने लाया जाता है जब आउटपुट त्रुटियों और चेतावनियों के लिए स्कैन नहीं किया जाता है।
  • फ़ोकस : यह नियंत्रित करता है कि टर्मिनल इनपुट फ़ोकस कर रहा है या नहीं। डिफ़ॉल्ट गलत है।

  • इको : नियंत्रित करता है कि क्या निष्पादित कमांड टर्मिनल में प्रतिध्वनित होती है। डिफ़ॉल्ट सत्य है।
  • showReuseMessage : यह नियंत्रित करता है कि "टर्मिनल को कार्यों द्वारा पुन: उपयोग किया जाएगा या नहीं, इसे बंद करने के लिए किसी भी कुंजी को दबाएं" संदेश।
  • पैनल : यह नियंत्रित करता है कि टर्मिनल रन को टास्क रन के बीच साझा किया गया है या नहीं। संभावित मूल्य हैं:
    • साझा : टर्मिनल साझा किया जाता है और अन्य कार्य रन का आउटपुट उसी टर्मिनल में जोड़ा जाता है।
    • समर्पित : टर्मिनल एक विशिष्ट कार्य के लिए समर्पित है। यदि उस कार्य को फिर से निष्पादित किया जाता है, तो टर्मिनल का पुन: उपयोग किया जाता है। हालाँकि, किसी भिन्न कार्य का आउटपुट किसी भिन्न टर्मिनल में प्रस्तुत किया जाता है।
    • नया : उस कार्य का प्रत्येक निष्पादन एक नए स्वच्छ टर्मिनल का उपयोग कर रहा है।
  • स्पष्ट: नियंत्रित करता है कि इस कार्य को चलाने से पहले टर्मिनल को मंजूरी दी गई है या नहीं। डिफ़ॉल्ट गलत है।

9

स्पष्ट दस्तावेज़ीकरण की कमी पर निराशा से बाहर, मैंने एक मैक प्रोजेक्ट बनाया है github पर जो बस काम करना चाहिए (भवन निर्माण और डिबगिंग दोनों):

vscode-मैक-सी उदाहरण

ध्यान दें कि इसके लिए XCode और VSCode Microsoft cpptools एक्सटेंशन की आवश्यकता है।

मैं विंडोज और लिनक्स के लिए भी ऐसा ही करने की योजना बना रहा हूं (जब तक कि माइक्रोसॉफ्ट पहले सभ्य दस्तावेज़ न लिखे ...)।


8

सबसे पहले, गोटो एक्सटेंशन (Ctrl + Shift + X) और 2 एक्सटेंशन इंस्टॉल करें:

  1. कोड रनर
  2. C / C ++

फिर, फिर वीएस कोड को फिर से लोड करें और दाएं कोने के शीर्ष पर एक प्ले बटन चुनें जो आउटपुट टर्मिनल में आपका प्रोग्राम चलाता है। आप Ctrl + Alt + N द्वारा आउटपुट देख सकते हैं। अन्य सुविधाओं को बदलने के लिए गोटो उपयोगकर्ता सेटिंग। यहां छवि विवरण दर्ज करें


यह पहले के उत्तरों का दोहराव है।
JDługosz

5

यदि आपके प्रोजेक्ट में CMake कॉन्फ़िगरेशन है तो यह VSCode सेटअप के लिए बहुत सीधा है, जैसे tasks.jsonनीचे सेटअप :

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

यह मानता है कि buildकार्यक्षेत्र की जड़ में एक फ़ोल्डर सीएमके कॉन्फ़िगरेशन के साथ है।

वहाँ भी एक CMake एकीकरण विस्तार है जो VScode करने के लिए "CMake बिल्ड" कमांड जोड़ता है।

पुनश्च! problemMatcherके लिए सेटअप है clang-builds। GCC का उपयोग करने के लिए मेरा मानना ​​है कि आपको इसे बदलने की आवश्यकता fileLocationहै relative, लेकिन मैंने इसका परीक्षण नहीं किया है।


5

यहां मैंने G ++ कंपाइलर का उपयोग करके C ++ के लिए अपना VS कॉन्फ़िगर किया है और यह डीबगिंग विकल्पों सहित शानदार काम करता है:

कार्य। 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"
}

लॉन्च.जॉन फ़ाइल

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

मेरे पास वीएस कोड में 'सी / सी ++ फॉर विजुअल स्टूडियो कोड' एक्सटेंशन भी है


मैं संकलन करने में सक्षम हूं, लेकिन VSCode पर C / C ++ डीबग नहीं कर रहा हूं। यह लेख कहता है कि डिबगिंग केवल लिनक्स पर समर्थित है। हाल ही में मैंने उसी के लिए यह धागा बनाया है । किसी भी मदद की सराहना करेंगे ...
महेश999

5

यहां मूल समस्या यह है कि C ++ प्रोग्राम का निर्माण और लिंक करना उपयोग में निर्माण प्रणाली पर बहुत अधिक निर्भर करता है। प्लगइन्स और कस्टम कोड के कुछ संयोजन का उपयोग करके, आपको निम्नलिखित विभिन्न कार्यों का समर्थन करना होगा:

  1. संपादक के लिए जनरल सी ++ भाषा का समर्थन। यह आमतौर पर ms-vscode.cpptools का उपयोग करके किया जाता है, जो अधिकांश लोग बिल्ड सपोर्ट जैसे कई अन्य सामानों को भी संभालने की उम्मीद करते हैं। मुझे कुछ समय बचाने दो: यह नहीं है। हालाँकि, आप शायद इसे वैसे भी चाहेंगे।

  2. निर्माण, साफ, और कार्यों का पुनर्निर्माण। यह वह जगह है जहाँ आपकी निर्माण प्रणाली का चुनाव एक बहुत बड़ा सौदा बन जाता है। आपको CMake और Autoconf (भगवान आपकी मदद करते हैं) जैसी चीजों के लिए प्लगइन्स मिलेंगे, लेकिन यदि आप मेसन और निंजा जैसी चीज़ों का उपयोग कर रहे हैं, तो आपको कुछ सहायक स्क्रिप्ट लिखने होंगे, और एक कस्टम "कार्य.json" फ़ाइल को कॉन्फ़िगर करना होगा। इन्हें संभालो। Microsoft ने पिछले कुछ संस्करणों में उस फ़ाइल के बारे में सब कुछ पूरी तरह से बदल दिया है, जिसे इसे कहा जाना चाहिए और स्थानों (हाँ, प्लेसस) के ठीक नीचे, यह पूरी तरह से प्रारूप को बदलने के बारे में कुछ भी नहीं कह सकता है। इससे भी बदतर, वे पिछड़े संगतता रखा है, "संस्करण" कुंजी का उपयोग करने के लिए सुनिश्चित करें कि आप चाहते हैं जो संस्करण निर्दिष्ट करने के लिए। यहां देखें विवरण:

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

... लेकिन ध्यान दें:

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

चेतावनी: सभी सदस्यों में से एक है, कि "संस्करण" टैग के साथ कुछ भी हो रहा है 2.0.0 OBSOLETE है।

इस समय मेरे पास सबसे करीबी चीज है। ध्यान दें कि मैं लिपियों के लिए सबसे भारी उठाने को लात मारता हूं, इससे मुझे वास्तव में कोई मेनू प्रविष्टि नहीं मिलती है, जिसके साथ मैं रह सकता हूं, और डिबग और रिलीज के बीच चयन करने का कोई अच्छा तरीका नहीं है, बस एक और तीन स्पष्ट प्रविष्टियां किए बिना। यहाँ। उस सब के साथ, यहाँ बताया गया है कि मैं इस समय अपने .vscode / कार्यों के रूप में क्या बर्दाश्त कर सकता हूं।

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

}

ध्यान दें कि, सिद्धांत रूप में, यदि आप इसे कार्यक्षेत्र रूट में रखते हैं, तो यह फ़ाइल काम करने वाली है, ताकि आप छिपी हुई निर्देशिकाओं (.vscode) में फ़ाइलों को अपने रिवीजन कंट्रोल सिस्टम में अटका कर न रखें। मुझे अभी तक देखना है कि वास्तव में काम करना है; इसका परीक्षण करें, लेकिन यदि यह विफल रहता है, तो इसे .vscode में डालें। किसी भी तरह से, IDE कुतिया होगा अगर यह वैसे भी नहीं है। (हाँ, फिलहाल, इसका मतलब है कि मुझे जाँच करने के लिए मजबूर किया गया है। तोड़फोड़ में तोड़फोड़, जिसके बारे में मैं खुश नहीं हूँ।) ध्यान दें कि मेरी बिल्ड स्क्रिप्ट (नहीं दिखाई गई) बस एक DEBUG निर्देशिका का उपयोग करके, (या फिर से बनाना)। मेरा मामला, मेसन, और इसके अंदर का निर्माण (उपयोग, मेरे मामले में, निंजा)।

  1. भागो, डिबग, अटैच, हाल्ट। ये "लॉन्च.जॉन" में परिभाषित किए गए कार्यों का एक और सेट हैं। या कम से कम वे हुआ करते थे। Microsoft ने प्रलेखन का एक ऐसा हैश बनाया है, मुझे अब यकीन भी नहीं है।

यहाँ एक उदाहरण के रूप में बिल्ड-स्क्रिप्ट / build-debug.sh फ़ाइल है। आदर्श रूप से ये बिल्ड संदर्भ (डिबग, रिलीज़, प्रोफाइलिंग, आदि) को इनहेरिट करेंगे, लेकिन मैं यह पता नहीं लगा सकता कि कोड कैसे प्रबंधित करता है, अगर यह अवधारणा भी है। स्वरूपण को क्षमा करें; जाओ, StackOverflow, जाओ। #! / बिन / बैश अगर [! -d "DEBUG"]; तो mkdir डेबग मेसन DEBUG फाई सीडी DEBUG निंजा अगर [$? —के ०]; तब बाहर निकलें 0 $ बाहर निकलें? Fi
ब्रेकपॉइंट

ओह, फिर से: CTRL-SHIFT-B दबाएं इसके बाद बिल्ड कार्यों को खींचने के लिए जगह है। मैं वास्तव में, वास्तव में इन से भरा एक उचित मुख्य मेनू पसंद करेंगे, लेकिन मुझे यह पता नहीं चला है कि यह कैसे करना है।
ब्रेकपॉइंट

4

एक अद्यतन VS कोड के साथ आप इसे निम्न तरीके से कर सकते हैं:

  1. हिट ( Ctrl+ P) और टाइप करें:

    ext install cpptools
    
  2. एक फ़ोल्डर खोलें ( Ctrl+ K& Ctrl+ O) और एक्सटेंशन के साथ फ़ोल्डर के अंदर एक नई फ़ाइल बनाएं । cpp (उदा: hello.cpp ):

  3. अपने कोड और हिट सेव में टाइप करें।

  4. हिट ( Ctrl+ Shift+ Pऔर टाइप करें), Configure task runnerऔर फिर otherसूची के निचले भाग में चयन करें ।

  5. नाम के साथ एक ही फ़ोल्डर में एक बैच फ़ाइल बनाएँ build.bat और फ़ाइल के शरीर के लिए निम्नलिखित कोड में शामिल हैं:

    @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. टास्क को संपादित करें। फ़ाइल को निम्नानुसार सहेजें और इसे सहेजें :

    {
    // 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. हिट ( Ctrl+ Shift+ Bबिल्ड कार्य चलाने के लिए। यह प्रोजेक्ट के लिए .obj और .exe फ़ाइलें बनाएगा ।

  8. प्रोजेक्ट डीबग करने के लिए, हिट करें F5और C ++ (विंडोज) चुनें

  9. में launch.json फ़ाइल, संपादित निम्नलिखित लाइन और सेव फ़ाइल:

    "program": "${workspaceRoot}/hello.exe",
    
  10. मारो F5


मैं नवीनतम VSC का उपयोग कर रहा हूँ। आपने मुझे चरण 4 में खो दिया है। कॉन्फ़िगर कार्य धावक उपलब्ध नहीं है।
लुई

2

आप 2.0.0विज़ुअल स्टूडियो कोड, https://gist.github.com/akanshgulati/56b4d469523ec0acd9f6f59918a9e454 के लिए एक वर्जन टास्क रखने वाले इस लेटेस्ट गिस्ट का संदर्भ दे सकते हैं

आप कार्य को अपडेट किए बिना आसानी से प्रत्येक फ़ाइल को संकलित और चला सकते हैं। यह सामान्य है और इनपुट प्रविष्टियों के लिए टर्मिनल भी खोलता है।


2

शॉर्टकट कुंजी द्वारा शीर्ष दाएं ans पर प्ले आइकन के साथ कोड चलाने के लिए एक्सटेंशन कोड रनर का उपयोग कर सकते हैं : Ctrl+Alt+Nऔर गर्भपात करने के लिए Ctrl+Alt+M। लेकिन डिफ़ॉल्ट रूप से यह केवल प्रोग्राम का आउटपुट दिखाता है लेकिन इनपुट प्राप्त करने के लिए आपको कुछ चरणों का पालन करना होगा:

Ctrl +, और फिर सेटिंग्स मेनू खुलता है और एक्सटेंशन> रन कोड कॉन्फ़िगरेशन इसकी विशेषताओं को नीचे स्क्रॉल करता है और सेटिंग्स में संपादित करें। इस पर क्लिक करें और निम्नलिखित कोड जोड़ दें:

{ "code-runner.runInTerminal": true }


मेरे लिए Ctrl + zooms
MM

यह ctrl कॉमा नहीं है ctrl plus to open Settings
Ashley Fernandes

1

अब Microsoft से C / C ++ भाषा एक्सटेंशन है। आप इसे "क्विक ओपन" चीज़ ( Ctrl+ p) पर जाकर टाइप करके इंस्टॉल कर सकते हैं :

ext install cpptools

आप इसके बारे में यहां पढ़ सकते हैं:

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

यह बहुत बुनियादी है, मई 2016 तक।


2
यह एक बॉर्डरलाइन लिंक-ओनली उत्तर है । आपको यहाँ पर अधिक से अधिक जानकारी शामिल करने के लिए अपने उत्तर का विस्तार करना चाहिए, और केवल संदर्भ के लिए लिंक का उपयोग करना चाहिए।
झपट्टा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.