प्रौद्योगिकी साझेदारी

sublime, novice tutorial इत्यस्मिन् C 20 इत्यस्य उपयोगं कार्यान्वितुं C compiler (.sublime-build) इत्येतत् sublime इत्यस्मिन् विन्यस्यताम्

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. प्रारम्भिक सज्जता

प्रथमं अस्माभिः C++ वातावरणं सज्जीकर्तुं आवश्यकम् अवश्यं, यदि भवान् अनुभवति यत् भवतां वर्तमानं C++ वातावरणं विन्यस्तं भवति तथा च C++ संस्करणं भवतः दैनन्दिन आवश्यकतां पूरयितुं शक्नोति तर्हि भवान् C++ संस्करणं पृच्छितुं निम्नलिखितद्वयं आदेशं उपयोक्तुं शक्नोति ।

g++ -v
  • 1
g++ --version
  • 1

केवलं न्याययन्तु यत् भवतः आवश्यकताः प्रत्यागतेन संस्करणेन समाधानं कर्तुं शक्यन्ते वा यदि भवान् मन्यते यत् वर्तमानसंस्करणं भवतः पश्चात् उपयोगस्य समर्थनं कर्तुं शक्नोति तर्हि कृपया प्रत्यक्षतया JSON सञ्चिकायाः ​​विन्यासस्य द्वितीयचरणं प्रति कूर्दन्तु ।

  • जीसीसी ४.८: समर्थन C++11 (आंशिक) .
  • जीसीसी ४.९: C++11 तथा C++14 (आंशिकम्) समर्थयति
  • जीसीसी ५: C++14 कृते पूर्णसमर्थनम्
  • जीसीसी ६: C++14 तथा C++17 (आंशिकम्) समर्थयति
  • जीसीसी ७: C++17 (प्रायः) समर्थयति ।
  • जीसीसी 8: पूर्णतया C++17 समर्थयति, आंशिकरूपेण C++20 समर्थयति
  • जीसीसी ९: अधिकानि C++20 विशेषतानि समर्थयति
  • जीसीसी १०: अधिकांशं C++20 विशेषतां समर्थयति
  • जीसीसी ११: C++20 कृते अधिकं व्यापकं समर्थनम्
  • जीसीसी 12: प्रायः सर्वाणि C++20 विशेषतानि समर्थयति
  • जीसीसी १३ तथा अनन्तरं: C++20 कृते पूर्णं समर्थनं योजयित्वा C++23 कृते समर्थनं आरभत

यदि भवान् पश्यति यत् भवान् स्वस्य C++ न विन्यस्तवान्, अथवा भवान् मन्यते यत् वर्तमानसंस्करणं दैनन्दिनशिक्षणस्य समर्थनं कर्तुं न शक्नोति, तर्हि भवान् aMingw C++ वातावरणं विन्यस्यति

सम्प्रति अहं मम वर्तमानं नवीनतमं Mingw इत्येतत् प्रदर्शनरूपेण उपयुञ्जामि

![[चिपकित चित्र 20240711232026.png]]

डाउनलोड् कृत्वा, भवन्तः ज्ञाते फोल्डर् मध्ये अनजिप् कृत्वा, अनजिप्ड् सञ्चिकामार्गं उद्घाट्य, बिन् सञ्चिकां अन्विष्यताम्

[[चिपकित चित्र 20240711232411.png]]

तत् उद्घाट्य उपरि सञ्चिकामार्गस्य प्रतिलिपिं कुर्वन्तु विसंपीडनकाले पूर्णाङ्ग्लमार्गस्य उपयोगः सर्वोत्तमः ।

e.g. : D:ProgramFilesmingw64bin
  • 1
  1. प्रणालीपर्यावरणचरं सम्पादयन्तु

चिपचिपा छवि 20240711232650

  1. पर्यावरण चर...
    ![[चिपकित चित्र 20240711232725.png]]

  2. अधः Path, Edit->New इत्यत्र सामग्रीं सम्पादयन्तु, मार्गं उपरि स्थापयन्तु, एतत् मार्गं चित्वा उपरि स्थापयन्तु ।
    ![[चिपकित चित्र 20240711232813.png]]

  3. पूर्णं कर्तुं OK नुदन्तु।

अहं g++ संस्करणस्य परीक्षणं करोमि।

2. पर्यावरणविन्यासः

साधनानि -> संकलनप्रणाली------> नवीनं संकलनप्रणाली... *.sublime-build सञ्चिकां जनयिष्यति यस्मिन् C++ JSON सञ्चिका विन्यस्ता अस्ति अवश्यं, भवान् विद्यमानं संकलनसञ्चिकां अपि परिवर्तयितुं शक्नोति ।

1. मूर्खविन्यासविधिः

उपरि उल्लिखिते सञ्चिकायां निम्नलिखितसङ्केतं प्रतिलिख्य, तत् रक्षन्तु, C++ संकलनार्थं भवता इदानीं पुनः सम्पादितां JSON सञ्चिकां चिनोतु ।

{  
   "shell_cmd": "g++  -finput-charset=UTF-8 -fexec-charset=GBK -Wall "${file_name}" -o "${file_base_name}" && start cmd /c ""${file_base_name}" & pause"",  
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${file_path}",  
   "selector": "source.c++",  
   "encoding": "gbk",  
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2. मूलभूतविन्यासविधिः

पूर्वनिर्धारितरूपेण,g++ संकलकाः सामान्यतया नवीनतमं C++ मानकं न उपयुञ्जते, परन्तु तस्य स्थाने पुरातनसङ्केतेन सह संगततां सुनिश्चित्य स्थिरं पूर्वनिर्धारितं मानकं (प्रायः C++14 अथवा C++17 इत्यादि प्राचीनमानकं) उपयुञ्जतेअतः यदि भवान् स्पष्टतया न निर्दिशति-std=c++20 वा-std=c++23, संकलकः प्राचीनमानकस्य उपयोगेन संकलनं कर्तुं शक्नोति, यत् नूतनमानकात् विशेषतानां उपयोगे त्रुटिं जनयितुं शक्नोति ।

अतः यदि वयं नवीनतमं संकलनविधिं उपयोक्तुं इच्छामः तर्हि उपरिष्टाद्, अस्माकं संकलकेन समर्थितं अधिकतमं C++ संस्करणं अवश्यं द्रष्टव्यम्, येन अस्माकं JSON सञ्चिकां C++ इत्यस्य नवीनतमसंस्करणेन सह संकलनार्थं अद्यतनं कर्तुं शक्यते

{  
   "shell_cmd": "g++ -std=c++23 -finput-charset=UTF-8 -fexec-charset=GBK -Wall "${file_name}" -o "${file_base_name}" && start cmd /c ""${file_base_name}" & pause"",  
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
   "working_dir": "${file_path}",  
   "selector": "source.c++",  
   "encoding": "gbk",  
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

विशिष्टः परिवर्तनः केवलं कोडस्य एकपङ्क्तिः एव

![[चिपकित चित्र 20240711234819.png]]

3. गहनविश्लेषणम्

मूलभूतविन्यासवस्तूनि

{  
   "shell_cmd": "g++ -std=c++23 -finput-charset=UTF-8 -fexec-charset=GBK -Wall "${file_name}" -o "${file_base_name}" && start cmd /c ""${file_base_name}" & pause"",  
   //编译命令,使用C++20标准,指定输入和输出编码为UTF-8和GBK,并启用所有警告。如果编译成功,则启动一个新的命令行窗口运行生成的可执行文件,并在运行结束后暂停窗口。
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", // wrong answer 正则表达式匹配文件名等信息。   
   "working_dir": "${file_path}",  // working_dir 编译的工作区
   "selector": "source.c++",  // 对象
   "encoding": "gbk",  // encoding 编码 : 选择 gbk(国标:包含所有的汉字) 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
पाठस्य विविधतां निर्मायताम्
{
	[  
       {  
           "name": "Single File Build", // 只编译 
           "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall "${file_name}" -o "${file_base_name}""  
       },  
       {  
           "name": "Single File Run",  //只运行
           "shell_cmd": "start cmd /c ""${file_base_name}" & pause""  
       },  
       {  
           "name": "Single File Build & Run", // 编译加运行 
           "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall "${file_name}" -o "${file_base_name}" && start cmd /c ""${file_base_name}" & pause""  
       },  


       // 下面为多文件编译 , 请勿使用 。
       {  
           "name": "Multiple Files Build",  
           "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall *.cpp -o "${file_base_name}""  
       },  
       {  
           "name": "Multiple Files Run",  
           "shell_cmd": "start cmd /c ""${file_base_name}" & pause""  
       },  
       {  
           "name": "Multiple Files Build & Run",  
           "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall *.cpp -o "${file_base_name}" && start cmd /c ""${file_base_name}" & pause""  
       }  
   ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
कुल
{  
   "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall "${file_name}" -o "${file_base_name}" && start cmd /c ""${file_base_name}" & pause"",  
   //编译命令,使用C++20标准,指定输入和输出编码为UTF-8和GBK,并启用所有警告。如果编译成功,则启动一个新的命令行窗口运行生成的可执行文件,并在运行结束后暂停窗口。
   "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", // wrong answer 正则表达式匹配文件名等信息。   
   "working_dir": "${file_path}",  // working_dir 编译的工作区
   "selector": "source.c++",  // 对象
   "encoding": "gbk",  // encoding 编码 : 选择 gbk(国标:包含所有的汉字) 
   "variants":  
   [  
       {  
           "name": "Single File Build", // 只编译 
           "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall "${file_name}" -o "${file_base_name}""  
       },  
       {  
           "name": "Single File Run",  //只运行
           "shell_cmd": "start cmd /c ""${file_base_name}" & pause""  
       },  
       {  
           "name": "Single File Build & Run", // 编译加运行 
           "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall "${file_name}" -o "${file_base_name}" && start cmd /c ""${file_base_name}" & pause""  
       },  


       // 下面为多文件编译 , 请勿使用 。
       {  
           "name": "Multiple Files Build",  
           "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall *.cpp -o "${file_base_name}""  
       },  
       {  
           "name": "Multiple Files Run",  
           "shell_cmd": "start cmd /c ""${file_base_name}" & pause""  
       },  
       {  
           "name": "Multiple Files Build & Run",  
           "shell_cmd": "g++ -std=c++20 -finput-charset=UTF-8 -fexec-charset=GBK -Wall *.cpp -o "${file_base_name}" && start cmd /c ""${file_base_name}" & pause""  
       }  
   ]  

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39