2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Nous devons d'abord préparer l'environnement C++. Bien sûr, si vous estimez que votre environnement C++ actuel est configuré et que la version C++ peut répondre à vos besoins quotidiens, vous pouvez utiliser les deux commandes suivantes pour interroger la version C++.
g++ -v
g++ --version
Jugez simplement si vos besoins peuvent être résolus par la version renvoyée. Si vous pensez que la version actuelle peut prendre en charge votre utilisation ultérieure, veuillez passer directement à la deuxième étape de configuration du fichier JSON.
Si vous constatez que vous n'avez pas configuré votre C++ ou si vous pensez que la version actuelle ne peut pas prendre en charge l'apprentissage quotidien, vous devez alors télécharger unMingw configure l'environnement C++
Actuellement, j'utilise mon dernier Mingw actuel comme démonstration
Après le téléchargement, décompressez-le dans un dossier que vous connaissez, ouvrez le chemin du fichier décompressé et recherchez un fichier bin.
Après l'avoir ouvert, copiez le chemin du fichier ci-dessus. Il est préférable d'utiliser le chemin complet en anglais lors de la décompression.
e.g. : D:ProgramFilesmingw64bin
Variables d'environnement…
Modifiez le contenu dans Chemin ci-dessous, Édition-> Nouveau, placez le chemin vers le haut, sélectionnez ce chemin et déplacez-le vers le haut.
Continuez à cliquer sur OK pour terminer.
Je teste la version g++.
Outils -> Système de compilation-----> Nouveau système de compilation... générera un fichier *.sublime-build dans lequel le fichier C++ JSON est configuré. Bien entendu, vous pouvez également modifier le fichier de compilation existant.
Copiez le code suivant dans le fichier mentionné ci-dessus, enregistrez-le et sélectionnez à nouveau le fichier JSON que vous venez de modifier pour compiler C++.
{
"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",
}
par défaut,g++
Les compilateurs n'utilisent généralement pas la dernière norme C++, mais utilisent plutôt une norme stable par défaut (généralement une norme plus ancienne telle que C++14 ou C++17) pour garantir la compatibilité avec le code plus ancien.Donc, si vous ne spécifiez pas explicitement-std=c++20
ou-std=c++23
, le compilateur peut compiler à l'aide d'une ancienne norme, ce qui peut provoquer des erreurs lors de l'utilisation des fonctionnalités de la nouvelle norme.
Par conséquent, si nous souhaitons utiliser la dernière méthode de compilation, nous devons nous référer à ce qui précède, la version maximale de C++ supportée par notre compilateur, afin de mettre à jour notre fichier JSON pour compiler avec la dernière version de 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",
}
Le changement spécifique n'est qu'une seule ligne de code
{
"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(国标:包含所有的汉字)
}
{
[
{
"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""
}
]
}
{
"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""
}
]
}