моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Сначала нам нужно подготовить среду C++. Конечно, если вы чувствуете, что ваша текущая среда C++ настроена и версия C++ может удовлетворить ваши повседневные потребности, вы можете использовать следующие две команды для запроса версии C++.
g++ -v
g++ --version
Просто оцените, могут ли ваши потребности быть решены с помощью возвращенной версии. Если вы считаете, что текущая версия может поддерживать ваше дальнейшее использование, перейдите непосредственно ко второму этапу настройки файла JSON.
Если вы обнаружите, что не настроили свой C++ или чувствуете, что текущая версия не поддерживает ежедневное обучение, вам необходимо загрузитьMingw настроить среду C++
В настоящее время я использую свой последний Mingw в качестве демонстрации.
После загрузки разархивируйте его в известную вам папку, откройте путь к разархивированному файлу и найдите файл bin.
После открытия скопируйте указанный выше путь к файлу. При распаковке лучше всего использовать полный путь на английском языке.
e.g. : D:ProgramFilesmingw64bin
Переменные среды…
Отредактируйте содержимое в Path ниже, Edit->New, поместите путь вверх, выберите этот путь и переместите его наверх.
Продолжайте нажимать ОК для завершения.
Я тестирую версию g++.
Инструменты -> Система компиляции -----> Новая система компиляции... создаст файл *.sublime-build, в котором настроен файл C++ JSON. Конечно, вы также можете изменить существующий файл компиляции.
Скопируйте следующий код в файл, упомянутый выше, сохраните его и снова выберите только что отредактированный файл JSON, чтобы скомпилировать 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",
}
по умолчанию,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",
}
Конкретное изменение - это всего лишь одна строка кода.
{
"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""
}
]
}