সি ++ কোড সংকলনের জন্য আমি কীভাবে ভিজ্যুয়াল স্টুডিও কোড সেট আপ করব?


222

মাইক্রোসফ্টের ভিজ্যুয়াল স্টুডিও কোড সম্পাদকটি বেশ দুর্দান্ত, তবে সি ++ প্রকল্প তৈরির জন্য এটির কোনও ডিফল্ট সমর্থন নেই।

এটি করার জন্য এটি কীভাবে কনফিগার করব?


12
লিনাক্সের অধীনে সি ++ কোড সংকলনের জন্য অনেক উত্তর রয়েছে তবে উইন্ডোজ সম্পর্কে কী বলা যায়?
চার্লস মাইলিট

5
এ জাতীয় প্রাথমিক জিনিস এবং তবুও উইন্ডোগুলিতে এটি করার জন্য কোনও সহায়ক সংস্থান নেই। এবং এমএস সিপিটিউলস এক্সটেনশন, সে সম্পর্কে কথা বলবেন না। আমার ধারণা এটি কেবল আপনার হতাশাকে যুক্ত করার জন্য। এটা কিছুই করে না।
ক্ষিতিজ

সমাধান কি কেউ পেয়েছেন? আমি সংকলন করতে সক্ষম, কিন্তু ভিএসকোডে সি / সি ++ ডিবাগ করছি না। এই নিবন্ধটি বলে যে ডিবাগিং কেবলমাত্র লিনাক্সেই সমর্থিত। এছাড়াও সম্প্রতি আমি এই থ্রেডটির জন্য তৈরি করেছি । কোন সাহায্যের প্রশংসা করবে ...
Mahesha999

উত্তর:


133

সি ++ কোডটি সংকলন ও চালনার জন্য আরও অনেক সহজ উপায় আছে, কোনও কনফিগারেশন প্রয়োজন নেই:

  1. কোড রানার এক্সটেনশন ইনস্টল করুন
  2. টেক্সট এডিটরে আপনার সি ++ কোড ফাইলটি খুলুন, তারপরে শর্টকাট ব্যবহার করুন Ctrl+Alt+N, বা টিপুন F1এবং তারপরে / টাইপ Run Codeকরুন বা ডান ক্লিক করুন পাঠ্য সম্পাদক এবং তারপরে Run Codeপ্রসঙ্গ মেনুতে ক্লিক করুন , কোডটি সংকলিত হবে এবং রান হবে এবং আউটপুটটি প্রদর্শিত হবে আউটপুট উইন্ডো।

এছাড়াও আপনি সেটিংসে কনফিগারটি আপডেট করতে পারেন। জসন বিভিন্ন সি ++ কম্পাইলারগুলি আপনার পছন্দ মতো ব্যবহার করে সি ++ এর জন্য ডিফল্ট কনফিগারেশনটি নীচে রয়েছে:

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

4
আমার আউটপুট উইন্ডো স্টক করা হয় running blablabla। কোন প্রম্পট, কিছুই না। আমি কীভাবে কোড চালানো বন্ধ করব?
হিচিগায়া হাচিমন

11
কোড চলমান বন্ধ করতে, ব্যবহার করুন Ctrl+Alt+M। ডেটা পড়তে স্টিডিন ব্যবহার করতে, আপনি সেট করতে File-> Preference-> এ যেতে পারেন । আরও তথ্যের জন্য, আপনি github.com/forulahendry/vscode-code-runner/issues/91 দেখুনSettings"code-runner.runInTerminal": true
জুন হান

1
আউটপুট উইন্ডোতে চলমান টার্মিনাল ইনপুটটিকে বাধা দেয়। রানইনটার্মিনালটি প্রয়োজনীয় মনে হচ্ছে ...
অ্যান্ড্রু ওল্ফ

একটি ত্রুটি পাওয়া - "ত্রুটি: # অন্তর্ভুক্ত" খালি ফাইলের নাম
গৌরভ

9
আপনার প্রকাশ করা উচিত যে আপনি যে এক্সটেনশানটি প্রচার করছেন তার লেখক আপনি।
কোডবলিং

86

বিল্ড টাস্কগুলি প্রকল্প নির্দিষ্ট। একটি নতুন প্রকল্প তৈরি করতে, ভিজ্যুয়াল স্টুডিও কোডে একটি ডিরেক্টরি খুলুন।

এখানে নির্দেশাবলী অনুসরণ করে , Ctrl+ Shift+ টিপুন P, টাইপ করুন Configure Tasks, এটি নির্বাচন করুন এবং টিপুন Enter

Tasks.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বিল্ড টাস্কের জন্য।
বিপদ 89

কোনও কমান্ড বা বাঁধাই আছে যা টার্মিনালে পরবর্তী / পূর্ববর্তী ত্রুটিতে চলে যাবে ? আমার এমন একটি পরিস্থিতি রয়েছে যেখানে "সমস্যাগুলি" ফলকে অপ্রাসঙ্গিক সমস্যা রয়েছে because একটি বিল্ড পরে দরকারী ত্রুটি পূর্ণ। "টার্মিনাল" এর পরবর্তী ত্রুটিতে যেতে আমাকে কেবল কীবোর্ড শর্টকাট দরকার ...
ড্যান এল

47

নতুন 2.0.0 কার্যের জন্য একটি মেকফাইল টাস্ক উদাহরণ j জসন সংস্করণ।

কিছু মন্তব্য নীচের স্নিপেটে আমি আশা করি তারা কার্যকর হবে।

{
    "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 এ আপ টু ডেট Thanks ধন্যবাদ!
TheIntern

আপনি কোন ডিরেক্টরিতে এটি স্থাপন করেছেন? মূল, ".vs", বা ".vscode"? মনে করা যায়, যদি ফাইলটিও পুনর্বিবেচনার নিয়ন্ত্রণে চলে আসে (তবে আমি দৃ strongly়ভাবে প্রস্তাব দিই) তবে ওয়ার্কস্পেস মূলটি কেবলমাত্র প্রস্তাবিত অবস্থান।
ব্রেকপয়েন্ট

আমি যা জানি তার জন্য, এই মুহুর্তে একমাত্র বৈধ স্থান .vscode। Git সংস্করণ নিয়ন্ত্রণের জন্য এক সম্ভাবনা জন্য ব্যবহার করতে হয় .gitignoreমত একটি প্যাটার্ন !.vscode/tasks.json
এটডোনা

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

ভিএস কোডে সি ++ প্রকল্পগুলি তৈরি / পরিচালনা করতে, আপনাকে ম্যানুয়ালি টাস্ক.জেএসন ফাইলটি কনফিগার করতে হবে যা ওয়ার্কস্পেস ফোল্ডারে .vscode ফোল্ডারে রয়েছে। Tasks.json খুলতে , ctrl + shift + P টিপুন এবং টাইপ করুন কনফিগার টাস্কগুলি , এবং এন্টার টিপুন , এটি আপনাকে Tasks.json এ নিয়ে যাবে

ফাইলটি আরও বোধগম্য করার জন্য এখানে আমি আমার টাস্কস জাসন ফাইলটি সরবরাহ করছি , এটি 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"
        },

    ]
}

এখন, সরাসরি ভিএস কোড কার্যাদি ডকুমেন্টেশন থেকে উল্লেখ করে ating

প্রকার সম্পত্তি বর্ণনা :

  • প্রকার : কাজের ধরণ type একটি কাস্টম কাজের জন্য, এটি হয় শেল বা প্রক্রিয়া হতে পারে। শেল নির্দিষ্ট করা থাকলে, কমান্ডটি শেল কমান্ড হিসাবে ব্যাখ্যা করা হয় (উদাহরণস্বরূপ: বাশ, সেন্টিমিডি বা পাওয়ারশেল)। যদি প্রক্রিয়া নির্দিষ্ট করা থাকে, কমান্ডটি কার্যকর করার প্রক্রিয়া হিসাবে ব্যাখ্যা করা হয়।

টাস্ক.জসনে উপস্থাপনা বৈশিষ্ট্য ব্যবহার করে টার্মিনালের আচরণ নিয়ন্ত্রণ করা যায় । এটি নিম্নলিখিত বৈশিষ্ট্যগুলি সরবরাহ করে:

  • প্রকাশ : ইন্টিগ্রেটেড টার্মিনাল প্যানেলটি সামনে আনা হয়েছে কিনা তা নিয়ন্ত্রণ করে। বৈধ মানগুলি হ'ল:

    • সর্বদা - প্যানেলটি সর্বদা সামনে উপস্থিত হয়। এটি ডিফল্ট
    • কখনই নয় - ব্যবহারকারীর অবশ্যই> টার্মিনাল কমান্ড (Ctrl + `) ব্যবহার করে টার্মিনাল প্যানেলটি স্পষ্টভাবে সামনে আনতে হবে।
    • নীরব - টার্মিনাল প্যানেলটি কেবল তখনই সামনে আনা হয় যদি ত্রুটি এবং সতর্কতার জন্য আউটপুট স্ক্যান না করা হয়।
  • ফোকাস : টার্মিনাল ইনপুট ফোকাস নিচ্ছে কিনা তা নিয়ন্ত্রণ করে। ডিফল্ট মিথ্যা।

  • প্রতিধ্বনি : সঞ্চালিত কমান্ডটি টার্মিনালে প্রতিধ্বনিত হয়েছে কিনা তা নিয়ন্ত্রণ করে। ডিফল্ট সত্য।
  • showReuseMessage : "টার্মিনালটি কার্য দ্বারা পুনরায় ব্যবহৃত হবে, বার্তাটি বন্ধ করতে যে কোনও কী টিপুন" প্রদর্শিত হবে কিনা তা নিয়ন্ত্রণ করে।
  • প্যানেল : টার্মিনাল দৃষ্টান্ত টাস্ক রানের মধ্যে ভাগ করা আছে কিনা তা নিয়ন্ত্রণ করে। সম্ভাব্য মানগুলি হ'ল:
    • ভাগ করা : টার্মিনালটি ভাগ করা হয় এবং একই টার্মিনালে অন্যান্য টাস্ক রানের আউটপুট যুক্ত হয়।
    • উত্সর্গীকৃত : টার্মিনালটি একটি নির্দিষ্ট কাজের জন্য নিবেদিত। যদি সেই কাজটি আবার কার্যকর করা হয় তবে টার্মিনালটি পুনরায় ব্যবহার করা হবে। তবে, একটি ভিন্ন টাস্কের আউটপুট একটি ভিন্ন টার্মিনালে উপস্থাপন করা হয়।
    • নতুন : সেই কাজের প্রতিটি সম্পাদনকারী একটি নতুন পরিষ্কার টার্মিনাল ব্যবহার করছে।
  • সাফ: এই টাস্কটি চালুর আগে টার্মিনালটি সাফ হয়েছে কিনা তা নিয়ন্ত্রণ করে। ডিফল্ট মিথ্যা।

9

পরিষ্কার ডকুমেন্টেশনের অভাবে হতাশার কারণে, আমি গিথুবে একটি ম্যাক প্রকল্প তৈরি করেছি যা কেবল কাজ করা উচিত (বিল্ডিং এবং ডিবাগিং উভয়):

vscode-ম্যাক-C-উদাহরণস্বরূপ

মনে রাখবেন এটির জন্য এক্সকোড এবং ভিএসকোড মাইক্রোসফ্ট সিপিটিউলস এক্সটেনশন প্রয়োজন।

আমি উইন্ডোজ এবং লিনাক্সের জন্য একই কাজ করার পরিকল্পনা করছি (যদি না মাইক্রোসফ্ট প্রথমে শালীন ডকুমেন্টেশন না লিখেন ...)।


8

প্রথমত, গোটো এক্সটেনশানগুলি (Ctrl + Shift + X) এবং 2 টি এক্সটেনশন ইনস্টল করুন:

  1. কোড রানার
  2. সি / সি ++

তারপরে, তারপরে ভিএস কোডটি পুনরায় লোড করুন এবং ডান দিকের কোণায় আপনার প্রোগ্রামটি আউটপুট টার্মিনালে চলমান শীর্ষে একটি প্লে বাটন নির্বাচন করুন। আপনি Ctrl + Alt + N দ্বারা আউটপুট দেখতে পাবেন other ব্যবহারকারী বৈশিষ্ট্যটির অন্যান্য বৈশিষ্ট্য পরিবর্তন করতে। এখানে চিত্র বর্ণনা লিখুন


এটি পূর্বের উত্তরের পুনরাবৃত্তি।
জেডুগোস্জ

5

যদি আপনার প্রকল্পের সিএমকে কনফিগারেশন থাকে তবে এটি সরাসরি ভিএসকোড সেটআপ করার জন্য সরাসরি এগিয়ে রয়েছে, যেমন 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সিএমকে কনফিগারেশন সহ ওয়ার্কস্পেসের মূলের একটি ফোল্ডার রয়েছে।

একটি সিএমকে ইন্টিগ্রেশন এক্সটেনশন রয়েছে যা ভিএসকোডে একটি "সিএমকে বিল্ড" কমান্ড যুক্ত করে।

পুনশ্চ! problemMatcherজন্য সেটআপ করা আছে clang-builds। জিসিসি ব্যবহার করার জন্য আমি বিশ্বাস করি আপনার পরিবর্তন fileLocationকরা দরকার relativeতবে আমি এটি পরীক্ষা করে দেখিনি।


5

এখানে আমি কীভাবে জি ++ সংকলক ব্যবহার করে সি ++ এর জন্য আমার ভিএস কনফিগার করেছি এবং এটি ডিবাগিং বিকল্পগুলি সহ দুর্দান্ত কাজ করে:

Tasks.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"
        }
    ]
}

আমার কাছে ভিএস কোডে 'ভিজুয়াল স্টুডিও কোডের জন্য সি / সি ++' এক্সটেনশনও রয়েছে


আমি সংকলন করতে সক্ষম, কিন্তু ভিএসকোডে সি / সি ++ ডিবাগ করছি না। এই নিবন্ধটি বলে যে ডিবাগিং কেবলমাত্র লিনাক্সেই সমর্থিত। এছাড়াও সম্প্রতি আমি এই থ্রেডটির জন্য তৈরি করেছি । কোন সাহায্যের প্রশংসা করবে ...
Mahesha999

5

এখানে মূল সমস্যাটি হ'ল একটি সি ++ প্রোগ্রাম তৈরি এবং লিঙ্ক করা ব্যবহৃত বিল্ড সিস্টেমের উপর নির্ভর করে। প্লাগইন এবং কাস্টম কোডের কিছু সংমিশ্রণ ব্যবহার করে আপনাকে নিম্নলিখিত স্বতন্ত্র কার্যগুলি সমর্থন করতে হবে:

  1. সম্পাদকের পক্ষে সাধারণ সি ++ ভাষা সমর্থন। এটি সাধারণত এমএস-vscode.cpptools ব্যবহার করে করা হয়, যা বেশিরভাগ লোকেরা বিল্ড সাপোর্টের মতো প্রচুর অন্যান্য স্টাফও পরিচালনা করতে পারে বলে আশাবাদী। আমাকে কিছুটা সময় বাঁচাতে দাও: তা হয় না। তবে আপনি সম্ভবত এটি চাইবেন it

  2. কার্যগুলি তৈরি করুন, পরিষ্কার করুন এবং পুনর্নির্মাণ করুন। এখানে আপনার বিল্ড সিস্টেমের পছন্দটি একটি বিশাল চুক্তিতে পরিণত হয়। আপনি সিএমকে এবং অটোকনফের মতো জিনিসগুলির জন্য প্লাগইনগুলি পাবেন (godশ্বর আপনাকে সাহায্য করুন), তবে আপনি যদি মেসন এবং নিনজার মতো কিছু ব্যবহার করেন তবে আপনাকে কিছু সহায়ক স্ক্রিপ্ট লিখতে হবে এবং এতে একটি কাস্টম "Tasks.json" ফাইলটি কনফিগার করতে হবে to এগুলি হ্যান্ডেল করুন মাইক্রোসফ্ট ফাইলটি শেষের কয়েকটি সংস্করণে পুরোপুরি পরিবর্তিত করেছে, ডানদিকে যা বলা হবে তার ঠিক নীচে এবং যে জায়গাগুলি (হ্যাঁ, প্লেসগুলি) যেতে পারে, সম্পূর্ণরূপে বিন্যাস পরিবর্তন করার বিষয়ে কিছুই বলতে পারে না। সবচেয়ে খারাপ, তারা কোন ধরণের পশ্চাতে চান তা নির্দিষ্ট করতে "সংস্করণ" কীটি ব্যবহার করার বিষয়ে নিশ্চিত হওয়ার জন্য, পশ্চাদপটে সামঞ্জস্যতা বাছাই করে রেখেছে। বিস্তারিত এখানে দেখুন:

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

... তবে এতে দ্বন্দ্বগুলি নোট করুন:

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

সতর্কতা: নীচে সমস্ত উত্তরগুলিতে, ২.০.০ এর নীচে "সংস্করণ" ট্যাগের সাথে যেটি শুরু হয়, তা অনুমোদিত।

এই মুহুর্তে আমি সবচেয়ে কাছের জিনিসটি পেয়েছি। নোট করুন যে আমি বেশিরভাগ ভারী উত্তোলন স্ক্রিপ্টগুলিতে ছেড়ে দিয়েছি, এটি আমার সাথে বাস করতে পারে এমন কোনও মেনু এন্ট্রি দেয় না, এবং কেবলমাত্র আরও তিনটি স্পষ্ট প্রবেশাধিকার না করেই ডিবাগ এবং রিলিজের মধ্যে নির্বাচন করার কোনও ভাল উপায় নেই isn't এখানে. যা বলা হয়েছিল তার সাথে, এই মুহুর্তে আমি আমার .vscode / Tasks.json ফাইল হিসাবে সহ্য করতে পারি:

{
// 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 এ রাখুন। যেভাবেই হোক, আইডিই বিচি দিবে যদি তা সেখানে না থাকে। (হ্যাঁ, এই মুহুর্তে, এর অর্থ হ'ল আমাকে বাধ্য হয়ে .vscode subversion এ চেক করতে বাধ্য করা হয়েছে, যা সম্পর্কে আমি সন্তুষ্ট নই)) নোট করুন যে আমার বিল্ড স্ক্রিপ্টগুলি (দেখানো হয়নি) কেবল একটি ডিইবিইউ ডিরেক্টরি তৈরি করে (বা পুনঃনির্মাণ) করুন, এতে আমার কেস, মেসন এবং এর ভিতরে বিল্ড করুন (ব্যবহার করে, আমার ক্ষেত্রে নিনজা)।

  1. চালান, ডিবাগ করুন, সংযুক্ত করুন, থামান। এগুলি আর একটি কাজের সেট, যা "লঞ্চ.জসন" এ সংজ্ঞায়িত হয়েছে। বা কমপক্ষে তারা ব্যবহৃত হত। মাইক্রোসফ্ট ডকুমেন্টেশনের এমন একটি হ্যাশ তৈরি করেছে, আমি এখনও নিশ্চিত নই।

উদাহরণস্বরূপ এখানে বিল্ড-স্ক্রিপ্টগুলি / বিল্ড-debug.sh ফাইলটি রয়েছে। আদর্শভাবে এগুলি বিল্ড কনটেক্সট (ডিবাগ, রিলিজ, প্রোফাইলিং ইত্যাদি) উত্তরাধিকার সূত্রে প্রাপ্ত হবে তবে কোডটি কীভাবে এটি পরিচালনা করে তা আমি বুঝতে পারি না, যদি এটির ধারণাটি থাকে তবেও। বিন্যাস ক্ষমা করুন; যাও, স্ট্যাকওভারফ্লো, যাও #! / বিন / বাশ যদি [! -d "DEBUG"]; তাহলে এমকেডির দেবুগ মেসন দেবুগ ফাই সিডি দেবুগ নিনজা যদি [$? -eq 0]; তাহলে 0 থেকে বেরিয়ে exit প্রস্থান করবেন? ফাই
ব্রেকপয়েন্ট

ওহ, আবার: বিল্ডিংয়ের কাজগুলি টানতে এটির পরে সিটিআরএল-শিফট-বি টিপুন। আমি সত্যই, সত্যিকার অর্থে এইগুলি পূর্ণ একটি উপযুক্ত মূল মেনু পছন্দ করি, তবে কীভাবে এটি করব তা আমি এখনও বুঝতে পারি নি।
ব্রেকপয়েন্ট

4

আপডেট হওয়া ভিএস কোডের সাহায্যে আপনি নিম্নলিখিত পদ্ধতিতে এটি করতে পারেন:

  1. হিট ( Ctrl+ P) এবং টাইপ করুন:

    ext install cpptools
    
  2. একটি ফোল্ডার খুলুন ( Ctrl+ K& Ctrl+ O) এবং এক্সটেনশন .cpp (উদা: হ্যালো। সিপিপি ) সহ ফোল্ডারের ভিতরে একটি নতুন ফাইল তৈরি করুন :

  3. আপনার কোড টাইপ করুন এবং সংরক্ষণ করুন।

  4. হিট ( Ctrl+ Shift+ Pএবং টাইপ করুন, Configure task runnerএবং তারপরে otherতালিকার নীচে নির্বাচন করুন ।

  5. বিল্ড.ব্যাট নামের সাথে একই ফোল্ডারে একটি ব্যাচ ফাইল তৈরি করুন এবং নিম্নলিখিত কোডটি ফাইলের মূল অংশে অন্তর্ভুক্ত করুন:

    @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এবং সি ++ (উইন্ডোজ) নির্বাচন করুন ।

  9. ইন launch.json ফাইল, সম্পাদনা নিম্নলিখিত লাইন এবং সংরক্ষণ ফাইল:

    "program": "${workspaceRoot}/hello.exe",
    
  10. হিট F5


আমি সর্বশেষতম ভিএসসি ব্যবহার করছি। আপনি আমাকে ৪ র্থ ধাপে হারিয়েছেন কনফিগার টাস্ক রানার উপলভ্য নয়।
লুই

2

আপনি 2.0.0ভিজ্যুয়াল স্টুডিও কোড, https://gist.github.com/akanshgulati/56b4d469523ec0acd9f6f59918a9e454 এর একটি সংস্করণ টাস্ক সহ সর্বশেষতম সংক্ষেপটি উল্লেখ করতে পারেন

আপনি টাস্কটি আপডেট না করে প্রতিটি ফাইল সহজেই সংকলন করতে এবং চালাতে পারেন। এটি জেনেরিক এবং ইনপুট এন্ট্রিগুলির জন্য টার্মিনালটিও খোলে।


2

শর্টকাট কী দ্বারা শীর্ষ রাইট উত্তরগুলি প্লে আইকন সহ কোড চালানোর জন্য এক্সটেনশন কোড রানার ব্যবহার করতে পারেন : Ctrl+Alt+Nএবং বাতিল করতে Ctrl+Alt+M। তবে ডিফল্টরূপে এটি কেবল প্রোগ্রামের আউটপুট দেখায় তবে ইনপুট পাওয়ার জন্য আপনাকে কয়েকটি পদক্ষেপ অনুসরণ করতে হবে:

Ctrl + এবং তারপরে সেটিংস মেনু খোলে এবং এক্সটেনশানগুলি> রান কোড কনফিগারেশন এর বৈশিষ্ট্যগুলি নীচে স্ক্রোল করে সেটিংসে সম্পাদনা পান son

{ "code-runner.runInTerminal": true }


Ctrl + আমার জন্য জুম করে
এমএম

সেটিংস খোলার জন্য এটি সিটিআরএল কমা সিটিআরএল প্লাস নয়
অ্যাশলে ফার্নান্দেস

1

মাইক্রোসফ্ট থেকে এখন একটি সি / সি ++ ভাষা এক্সটেনশন রয়েছে। আপনি "দ্রুত ওপেন" জিনিস ( Ctrl+ p) এ গিয়ে টাইপ করে এটি ইনস্টল করতে পারেন :

ext install cpptools

আপনি এখানে এটি সম্পর্কে পড়তে পারেন:

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

এটি 2016 সালের মে হিসাবে খুব বেসিক।


2
এটি সীমান্তের লিংক-কেবল উত্তর । এখানে যত বেশি তথ্য অন্তর্ভুক্ত করতে আপনার উত্তরটি প্রসারিত করা উচিত, এবং কেবলমাত্র রেফারেন্সের জন্য লিঙ্কটি ব্যবহার করুন।
jhpratt
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.