Компилятор c windows: Тест Си компиляторов под Windows / Хабр
Первая программа на Windows. Компилятор g++
Первая программа на Windows. Компилятор g++
Последнее обновление: 28.08.2017
Для написания программ на языке С++ как минимум необходимы два компонента: текстовый редактор, с помощью которого можно набрать исходный код, и компилятор,
который принимает файл с исходным кодом и компилирует его в исполняемый файл.
В качестве компилятора мы будем использовать один из наиболее популярных на сегодня компиляторов — g++,
который доступен для разных платформ. Более подобному информацию о g++ можно получить на официальном сайте проекта https://gcc.gnu.org/.
Набор компиляторов g++ распространяется в различных версиях. Одной из наиболее популярных версий является пакет средств для разработки от
некоммерческого проекта Mingw-w64. Этот пакет содержит не только g++, но и ряд других компиляторов
для других языков программирования. Для установки соответствующего пакета компиляторов загрузим файл установщика по ссылке
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download
При запуске установщика откроется следующее окно:
Нажмем на кнопку Next > и перейдем к следующему шагу:
Если версия ОС 64-битная, то в поле Architecture
следует выбрать пункт x86_64. Остальные настройки
оставим по умолчанию и нажмем на кнопку Next >. На следующем шаге укажем путь, по которому будет устанавливаться пакет:
Можно оставить настройки по умолчанию. И после перехода к следующему шагу собственно начнется установка.
После завершения установки на жестком диске по пути, которое было выбрано для установки, появятся все необходимые файлы компиляторов.
В моем случае они находятся по пути C:\Program Files (x86)\mingw-w64\i686-7.1.0-posix-dwarf-rt_v5-rev0\mingw32\bin:
В частности, файл g++.exe как раз и будет представлять компилятор для языка С++.
В зависимости от версии пакета точный путь может отличаться, но в любом случае все файлы будут располагаться по тому пути, который был указан на шаге установки.
Для упрощения запуска компилятора можно добавить путь к нему в Переменные среды. Для этого перейдем к окну
Система -> Дополнительные параметры системы -> Переменные среды:
И добавим путь к компилятору:
Таким образом, мы установили компилятор и теперь мы можем написать первую программу. Для набора исходного кода потребуется текстовый редактор.
Можно взять распространенный редактор Notepad++ или даже обычный встроенный Блокнот, либо какой-то другой редактор.
Итак, создадим на жестком диске С папку для исходных файлов. А в этой папке создадим новый текстовый файл, который переименуем в
hello.cpp. То есть по сути файлы исходного кода на С++ — это обычные текстовые файлы, которые, как правило, имеют расширение
cpp.
В моем случае файл hello.cpp находится в папке C:\cpp.
Теперь определим в файле hello.cpp простейший код, который будет выводить строку на консоль:
#include <iostream> // подключаем заголовочный файл iostream int main() // определяем функцию main { // начало функции std::cout << "Hello World!"; // выводим строку на консоль return 0; // выходим из функции } // конец функции
Для вывода строки на консоль необходимо подключить нужный функционал. Для этого в начале файла идет строка
#include <iostream>
Данная строка представляет директиву препроцессора, которая позволяет подключить библиотеку iostream. Эта библиотека нужна для вывода строки на консоль.
Далее идет определение функции main. Функция main должна присутствовать в любой программе на С++, с нее
собственно и начинается выполнение приложения.
Функция main состоит из четырех элементов:
Тип возвращаемого значения. В данном случае это тип int. Этот тип указывает, что функция должна
возвращать целое число.Имя функции. В данном случае функция называется main.
Список параметров. После имени функции в скобках идет список параметров. Но в данном случае скобки пустые, то есть
функция main не принимает параметров.Тело функции. После списка параметров в фигурных скобках идет тело функции. Здесь и определяются собственно те
действия, которые выполняет функция main.{ std::cout << "Hello World!"; return 0; }
В теле функции происходит вывод строки на консоль. Для обращения к консоли используется стандартный поток вывода std::cout.
С помощью оператора << в этот поток (в данном случае фактически на консоль) передается строка символов, которую надо вывести на консоль, то есть «Hello world!».
В конце осуществляем выход из функции с помощью оператора return. Так как функция должна возвращать целое число, то после return указывается число 0.
Ноль используется в качестве индикатора успешного завершения программы.
После каждой инструкции в языке C++ ставятся точка с запятой.
Каждая строка снабжена комментарием. Все, что написано после двойного слеша // представляет комментарий. Комментарий не учитывается при компиляции приложения, и
не является частью программного кода, а служат лишь для его описания. Комментарий позволяет понять, что делает программа.
Теперь скомпилируем этот файл. Для этого откроем командную строку Windows и вначале с помощью команды cd перейдем к папке с исходным файлом:
Чтобы скомпилировать исходный код, необходимо компилятору gcc передать в качестве параметра файл hello.cpp:
Дополнительный необязательный параметр -o hello
указывает, что скомпилированный файл будет называться hello.exe. Если не указать этот параметр, то файл будет называться по умолчанию — a.exe.
После выполнения этой команды будет скомпилирован исполняемый файл, который в Windows по умолчанию называется hello.exe. И мы можем обратиться к этому файлу, и в этом случае консоль выведет
строку «Hello World!», собственно как и прописано в коде.
Установка компилятора C++ под windowsPerl, Python — блог программиста | Perl, Python
Большинство учебников по программированию на C++, начинаются с написания программы типа «Hello, world!». Все это отлично. Но что мне делать с этой программой? Первое, с чего надо начинать — это установка компилятора.
Для начала, я решила поставить компилятор C++ под windows. Выбрала MinGW, он мне показался проще аналогов, а для начинающего С++ программиста в первое время важно только одно — чтобы компилировалось.
1. Откуда скачать MinGW
http://sourceforge.net/projects/mingw/ — официальное файловое хранилище проекта. Скачиваем последнюю версию инсталлятора и запускаем его. Инсталлятор выкачает необходимые файлы из интернета и установит компилятор. Требуется только своевременно нажимать кнопочку «Next».
Кстати, инсталлятор предлагает установить компилятор не только для C++, но и для C, Ada, и др.
2. Настройка окружения
Открыть «Панель управления» -> «Система» -> «Дополнительно» -> «Переменные среды». Найти переменную Path и, используя в качестве разделителя символ «точка с запятой», добавить путь к директории «C:\MinGW\bin«.
3. Как компилировать программу на C++
3.1. Открыть окно «Коммандная строка» («Программы»->»Стандартные»).
3.2. Войти в директорию программы. Например:
C:\Documents and Settings\admin\Мои документы>cd cpp_app
| C:\Documents and Settings\admin\Мои документы>cd cpp_app |
3.3. Запустить компилятор:
C:\Documents and Settings\admin\Мои документы\cpp_app>g++ hello.cpp
| C:\Documents and Settings\admin\Мои документы\cpp_app>g++ hello.cpp |
В результате компилятор вернет ошибку или создаст исполняемый файл:
C:\Documents and Settings\admin\Мои документы\cpp_app>dir
10.12.2012 10:53 <DIR> .
10.12.2012 10:53 <DIR> ..
10.12.2012 10:23 100 120 a.exe
10.12.2012 10:23 86 hello.cpp
| C:\Documents and Settings\admin\Мои документы\cpp_app>dir
10.12.2012 10:53 <DIR> . 10.12.2012 10:53 <DIR> .. 10.12.2012 10:23 100 120 a.exe 10.12.2012 10:23 86 hello.cpp |
Для массовой компиляции можно задавать список файлов:
> g++ hello.cpp puzzle.cpp
| > g++ hello.cpp puzzle.cpp |
Или просто указать:
3.4. Уменьшение размера исполняемого файла.
Можно использовать команду strip для уменьшения размера исполняемого файла.
Пример. Для простейшей программы, которая выводит только фразу «Hello, world!» был создан исполняемый файл неадекватного размера:
10.12.2012 10:23 100 120 a.exe
| 10.12.2012 10:23 100 120 a.exe |
После применения команды strip ситуация стала значительно более симпатичной:
C:\Documents and Settings\admin\Мои документы\cpp_app>strip a.exe
C:\Documents and Settings\admin\Мои документы\cpp_app>dir
10.12.2012 11:23 <DIR> .
10.12.2012 11:23 <DIR> ..
10.12.2012 11:23 11 776 a.exe
10.12.2012 11:23 86 hello.cpp
| C:\Documents and Settings\admin\Мои документы\cpp_app>strip a.exe
C:\Documents and Settings\admin\Мои документы\cpp_app>dir
10.12.2012 11:23 <DIR> . 10.12.2012 11:23 <DIR> .. 10.12.2012 11:23 11 776 a.exe 10.12.2012 11:23 86 hello.cpp |
3.5. Задать имя исполняемому файлу
По умолчанию, компилируя hello.cpp, компилятор создал файл a.exe. Можно указать компилятору, под каким именем создавать исполняемый файл, используя опцию -o.
C:\Documents and Settings\admin\Мои документы\cpp_app>g++ hello.cpp -o hello.exe
C:\Documents and Settings\admin\Мои документы\cpp_app>dir
10.12.2012 11:33 <DIR> .
10.12.2012 11:33 <DIR> ..
10.12.2012 11:23 11 776 a.exe
10.12.2012 11:23 86 hello.cpp
10.12.2012 11:33 100 120 hello.exe
| C:\Documents and Settings\admin\Мои документы\cpp_app>g++ hello.cpp -o hello.exe
C:\Documents and Settings\admin\Мои документы\cpp_app>dir
10.12.2012 11:33 <DIR> . 10.12.2012 11:33 <DIR> .. 10.12.2012 11:23 11 776 a.exe 10.12.2012 11:23 86 hello.cpp 10.12.2012 11:33 100 120 hello.exe |
Полезные ссылки
gcc.gnu.org: GCC online documentation
wikipedia.org: MinGW
cyberforum.ru: GCC — компиляция C/C++ программ
Какой компилятор С/C++ вы используете под win?
//+—————————————————————————
//
// HELLO_WIN.C — Windows GUI ‘Hello World!’ Example
//
//+—————————————————————————
#include <windows.h>
#define APPNAME «HELLO_WIN»
char szAppName[] = APPNAME; // The name of this application
char szTitle[] = APPNAME; // The title bar text
const char *pWindowText;
void CenterWindow(HWND hWnd);
//+—————————————————————————
//
// Function: WndProc
//
// Synopsis: very unusual type of function — gets called by system to
// process windows messages.
//
// Arguments: same as always.
//—————————————————————————-
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
// ———————— first and last
case WM_CREATE:
CenterWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
// ———————— get out of it…
case WM_RBUTTONUP:
DestroyWindow(hwnd);
break;
case WM_KEYDOWN:
if (VK_ESCAPE == wParam)
DestroyWindow(hwnd);
break;
// ———————— display our minimal info
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc;
RECT rc;
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rc);
SetTextColor(hdc, RGB(240,240,96));
SetBkMode(hdc, TRANSPARENT);
DrawText(hdc, pWindowText, -1, &rc, DT_CENTER|DT_SINGLELINE|DT_VCENTER);
EndPaint(hwnd, &ps);
break;
}
// ———————— let windows do all other stuff
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
//+—————————————————————————
//
// Function: WinMain
//
// Synopsis: standard entrypoint for GUI Win32 apps
//
//—————————————————————————-
int APIENTRY WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
MSG msg;
WNDCLASS wc;
HWND hwnd;
pWindowText = lpCmdLine[0] ? lpCmdLine : «Hello Windows!»;
// Fill in window class structure with parameters that describe
// the main window.
ZeroMemory(&wc, sizeof wc);
wc.hInstance = hInstance;
wc.lpszClassName = szAppName;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.style = CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;
wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
if (FALSE == RegisterClass(&wc))
return 0;
// create the browser
hwnd = CreateWindow(
szAppName,
szTitle,
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
CW_USEDEFAULT,
CW_USEDEFAULT,
360,//CW_USEDEFAULT,
240,//CW_USEDEFAULT,
0,
0,
hInstance,
0);
if (NULL == hwnd)
return 0;
// Main message loop:
while (GetMessage(&msg, NULL, 0, 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
//+—————————————————————————
//+—————————————————————————
void CenterWindow(HWND hwnd_self)
{
HWND hwnd_parent;
RECT rw_self, rc_parent, rw_parent;
int xpos, ypos;
hwnd_parent = GetParent(hwnd_self);
if (NULL == hwnd_parent)
hwnd_parent = GetDesktopWindow();
GetWindowRect(hwnd_parent, &rw_parent);
GetClientRect(hwnd_parent, &rc_parent);
GetWindowRect(hwnd_self, &rw_self);
xpos = rw_parent.left + (rc_parent.right + rw_self.left — rw_self.right) / 2;
ypos = rw_parent.top + (rc_parent.bottom + rw_self.top — rw_self.bottom) / 2;
SetWindowPos(
hwnd_self, NULL,
xpos, ypos, 0, 0,
SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE
);
}
//+—————————————————————————
C++ — Компиляция с помощью GCC
пример
Предполагая, что один исходный файл с именем main.cpp
, команда для компиляции и ссылки на не оптимизированный исполняемый файл выглядит следующим образом (компиляция без оптимизации полезна для начальной разработки и отладки, хотя -Og
официально рекомендуется для более новых версий GCC).
g++ -o app -Wall main.cpp -O0
Чтобы создать оптимизированный исполняемый файл для использования в производстве, используйте один из опций -O
(см .: -O1
, -O2
, -O3
, -Os
, -Ofast
):
g++ -o app -Wall -O2 main.cpp
Если опция -O опущена, -O0, что означает отсутствие оптимизаций, используется по умолчанию (указание -O без номера разрешается на -O1).
Альтернативно, используйте флаги оптимизации из групп O
(или более экспериментальных оптимизаций) напрямую. В следующем примере построена оптимизация -O2
плюс один флаг с уровня оптимизации -O3
:
g++ -o app -Wall -O2 -ftree-partial-pre main.cpp
Чтобы создать оптимизированный исполняемый файл для конкретной платформы (для использования на производстве с той же архитектурой), используйте:
g++ -o app -Wall -O2 -march=native main.cpp
Любой из вышеперечисленных файлов создаст двоичный файл, который можно запустить с .\app.exe
в Windows и ./app
в Linux, Mac OS и т. Д.
Флаг -o
также может быть пропущен. В этом случае GCC создаст исполняемый файл a.exe
по умолчанию a.exe
Windows и a.out
в Unix-подобных системах. Чтобы скомпилировать файл без его связывания, используйте параметр -c
:
g++ -o file.o -Wall -c file.cpp
Это создает объектный файл с именем file.o
который впоследствии может быть связан с другими файлами для создания двоичного файла:
g++ -o app file.o otherfile.o
Подробнее о вариантах оптимизации можно узнать на gcc.gnu.org . Особо следует отметить -Og
(оптимизация с упором на опыт отладки — рекомендуется для стандартного цикла редактирования-компиляции-отладки) и -Ofast
(все оптимизации, включая те, которые не соответствуют строгому соблюдению стандартов).
Флаг -Wall
позволяет предупреждать многие распространенные ошибки и всегда должен использоваться. Для улучшения качества кода часто рекомендуется использовать -Wextra
и другие предупреждающие флаги, которые автоматически не активируются -Wall
и -Wextra
.
Если код ожидает определенный стандарт C ++, укажите, какой стандарт использовать, включая флаг -std=
. Поддерживаемые значения соответствуют году завершения для каждой версии стандарта ISO C ++. Начиная с GCC 6.1.0, допустимыми значениями для std=
flag являются c++98
/ c++03
, c++11
, c++14
и c++17
/ c++1z
. Значения, разделенные косой чертой, эквивалентны.
g++ -std=c++11 <file>
GCC включает некоторые расширения, специфичные для компилятора, которые отключены, когда они конфликтуют со стандартом, заданным флагом -std=
. Для компиляции с включенными всеми расширениями может использоваться значение gnu++XX
, где XX
— любой из лет, используемых значениями c++
перечисленными выше.
Стандарт по умолчанию будет использоваться, если ни один не указан. Для версий GCC до 6.1.0 по умолчанию используется значение -std=gnu++03
; в GCC 6.1.0 и выше по умолчанию используется -std=gnu++14
.
Обратите внимание, что из-за ошибок в GCC флаг -pthread
должен присутствовать при компиляции и связывании для GCC для поддержки стандартных функций потоковой -pthread
C ++, представленных с C ++ 11, таких как std::thread
и std::wait_for
. Опущение при использовании функций потоковой передачи может не приводить к появлению предупреждений, но недействительных результатов на некоторых платформах.
Используйте опцию -l
для передачи имени библиотеки:
g++ main.cpp -lpcre2-8
#pcre2-8 is the PCRE2 library for 8bit code units (UTF-8)
Если библиотека не находится в стандартном пути библиотеки, добавьте путь с параметром -L
:
g++ main.cpp -L/my/custom/path/ -lmylib
Несколько библиотек могут быть связаны между собой:
g++ main.cpp -lmylib1 -lmylib2 -lmylib3
Если одна библиотека зависит от другой, поместите зависимую библиотеку перед независимой библиотекой:
g++ main.cpp -lchild-lib -lbase-lib
Или дайте компоновщику определить само упорядочение через --start-group
и --end-group
(обратите внимание: это имеет значительную производительность):
g++ main.cpp -Wl,--start-group -lbase-lib -lchild-lib -Wl,--end-group
Начало работы с C ++ и Mingw-w64 в Visual Studio Code
В этом руководстве вы настраиваете Visual Studio Code для использования компилятора GCC C ++ (g ++) и отладчика GDB из mingw-w64 для создания программ, работающих в Windows.
После настройки VS Code вы скомпилируете и отладите простую программу Hello World в VS Code. В этом руководстве не рассказывается о GCC, GDB, Mingw-w64 или языке C ++. По этим предметам в Интернете доступно множество хороших ресурсов.
Если у вас возникнут какие-либо проблемы, не стесняйтесь сообщать о проблеме для этого руководства в репозиторий документации VS Code.
Предварительные требования
Для успешного прохождения данного руководства необходимо выполнить следующие шаги:
Установите код Visual Studio.
Установите расширение C / C ++ для VS Code. Вы можете установить расширение C / C ++, выполнив поиск «c ++» в представлении «Расширения» (⇧⌘X (Windows, Linux Ctrl + Shift + X)).
Установите Mingw-w64 через сайт SourceForge. Щелкните Mingw-w64, чтобы загрузить установщик Windows Mingw-w64.
- Запустите установщик.
- Для архитектуры выберите x86_64 , а затем выберите Далее .
- Далее снова, чтобы использовать папку установки по умолчанию и установить MinGW.
Добавьте путь к папке Mingw-w64
bin
в переменную среды WindowsPATH
, выполнив следующие действия:- В строке поиска Windows введите «настройки», чтобы открыть настройки Windows.
- Найдите Измените переменные среды для своей учетной записи .
- Выберите переменную
Path
, а затем выберите Edit . - Выберите New и добавьте путь Mingw-w64 к системному пути. Точный путь зависит от того, какую версию Mingw-w64 вы установили и где вы ее установили. Если вы использовали указанные выше настройки для установки Mingw-w64, добавьте это в путь:
C: \ Program Files \ mingw-w64 \ x86_64-8.1.0-posix-seh-rt_v6-rev0 \ mingw64 \ bin
. - Выберите ОК , чтобы сохранить обновленный ПУТЬ. Вам нужно будет повторно открыть все окна консоли, чтобы новое местоположение PATH стало доступным.
Проверьте установку MinGW
Чтобы убедиться, что инструменты Mingw-w64 правильно установлены и доступны, откройте новую командную строку и введите:
g ++ --версия
gdb - версия
Если вы не видите ожидаемого вывода или g ++
или gdb
не распознанная команда, проверьте свою установку (Панель управления Windows > Программы ) и убедитесь, что ваша запись PATH соответствует двоичному файлу Mingw-w64 место, где расположены компиляторы.
Создать Hello World
В командной строке Windows создайте пустую папку с именем projects
, куда вы можете поместить все свои проекты VS Code. Затем создайте подпапку с именем helloworld
, перейдите в нее и откройте VS Code в этой папке, введя следующие команды:
мкдир проектов
CD проекты
mkdir helloworld
cd helloworld
код.
«Код». Команда открывает VS Code в текущей рабочей папке, которая становится вашей «рабочей областью».По мере прохождения руководства вы увидите три файла, созданные в папке .vscode
в рабочей области:
-
tasks.json
(инструкция по сборке) -
launch.json
(настройки отладчика) -
c_cpp_properties.json
(путь компилятора и настройки IntelliSense)
Добавить файл исходного кода
В строке заголовка проводника нажмите кнопку New File и назовите файл helloworld.cpp
.
Добавить исходный код hello world
Теперь вставьте этот исходный код:
#include
#include <вектор>
#include <строка>
using namespace std
Поддержка компилятора C ++ — cppreference.com
Эта страница поддерживается в режиме максимальных усилий и может отставать от последних выпусков компилятора. Если вы видите, что что-то устарело, помогите нам, обновив его! |
В следующей таблице представлена поддержка компилятором новых функций C ++.К ним относятся C ++ 11, C ++ 14, C ++ 17, C ++ 20 и принятые более поздние версии (C ++ 23 / C ++ 2b) стандарта, а также различные технические спецификации.
[править] C ++ 2b особенности
Обратите внимание, что этот список может измениться по мере развития проекта стандарта C ++ 2b.
[править] C ++ 20 особенности
[править] Особенности основного языка C ++ 20
Функция C ++ 20 | Бумага (и) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Разрешить лямбда-захват [=, this] | P0409R2 | 8 | 6 | 19.22 * | 10.0.0 * | 5,1 | ||||||||
__VA_OPT__ | P0306R4 P1042R1 | 8 (частичное) * 10 (частичное) * | 9 | 19,25 * | 11.0.3 * | 5,1 | ||||||||
Назначенные инициализаторы | P0329R4 | 4.7 (частичное) * 8 | 3,0 (частичное) * 10 | 19,21 * | (частично) * | 5,1 | ||||||||
список параметров шаблона для общих лямбда-выражений | P0428R2 | 8 | 9 | 19,22 * | 11.0.0 * | 5,1 | ||||||||
Инициализаторы элементов по умолчанию для битовых полей | P0683R1 | 8 | 6 | 19.25 * | 10.0.0 * | 5,1 | ||||||||
Конструкторы списка инициализаторов в выводе аргументов шаблона класса | P0702R1 | 8 | 6 | 19,14 * | Да | 5,0 | ||||||||
const & -квалифицированные указатели на элементы | P0704R1 | 8 | 6 | 19.0 * | 10.0.0 * | 5,1 | ||||||||
Концепции | P0734R0 | 6 (только TS) 10 | 10 | 19,23 * (частично) * | 6,1 | |||||||||
Лямбды в неоцененных контекстах | P0315R4 | 9 | 19.28 * | |||||||||||
Оператор трехстороннего сравнения | P0515R3 | 10 | 8 (частичное) 10 | 19,20 * | 5,1 | |||||||||
DR: Упрощение неявного лямбда-захвата | P0588R1 | 8 | 19.24 * | 5,1 | ||||||||||
инструкции инициализации для диапазона на основе | P0614R1 | 9 | 8 | 19,25 * | 11.0.0 * | 6,0 | ||||||||
Конструируемые и назначаемые лямбды без сохранения состояния по умолчанию | P0624R2 | 9 | 8 | 19.22 * | 10.0.1 * | 5,1 | ||||||||
Несоответствие констант с конструктором копирования по умолчанию | P0641R2 | 9 | 8 | 19,21 * (частично) | 10.0.1 * | 5,1 | ||||||||
Проверка доступа по специальностям | P0692R1 | Да | 8 (частичный) | 19.26 * | 10.0.1 * (частично) | 5,1 | ||||||||
Невидимые ADL и шаблоны функций | P0846R0 | 9 | 9 | 19,21 * | 11.0.3 * | 5,1 | ||||||||
Менее активное создание экземпляров constexpr функций | P0859R0 | 5.2 (частичный) * 9 | 8 | |||||||||||
Атрибуты [[вероятно]] и [[маловероятно]] | P0479R5 | 9 | 12 | 19,26 * | 5,1 | |||||||||
Сделать typename более необязательным | P0634R3 | 9 | 5.1 | |||||||||||
Расширение пакета в lambda init-capture | P0780R2 | 9 | 9 | 19,22 * | 11.0.3 * | 6,1 | ||||||||
Атрибут [[no_unique_address]] | P0840R2 | 9 | 9 | 19.29 * | 11.0.3 * | 5,1 | ||||||||
Условно тривиальные специальные функции-члены | P0848R3 | 10 | 19,28 * | 6,1 | ||||||||||
DR: Ослабление правил поиска точек настройки структурированных привязок | P0961R1 | 8 | 8 | 19.21 * | 10.0.1 * | 5,1 | ||||||||
DR: Ослабление диапазона — для правил поиска точки настройки цикла | P0962R1 | 8 | 8 | 5,1 | ||||||||||
DR: разрешить структурированные привязки к доступным элементам | P0969R0 | 8 | 8 | 19.21 * | 10.0.1 * | 5,1 |
Установка компилятора C / GCC для Windows
Первым шагом в изучении любого языка программирования является установка в системе необходимого программного обеспечения. В этом руководстве мы узнаем, как установить компилятор C / GCC в Windows.
Редакторы исходного кода
Хотя вы можете выбрать любой базовый текстовый редактор, например блокнот, для написания и редактирования исходного кода C, мы рекомендуем выбрать один из редакторов ниже.
- Notepad ++ (только для Windows)
- Microsoft Visual Studio Code (для Windows и Linux)
- ATOM (для Windows и Linux)
- IDE (интегрированная среда разработки), например Eclipse или Netbeans можно использовать, но если вы новичок в программировании на C, предпочтите использовать текстовые редакторы, упомянутые выше.
Установка компилятора C / GCC для Windows
- Один из предпочтительных способов установки компилятора C / GCC — использовать CodeBlocks .Просто установите его, запустите и начните писать код, чтобы все было просто. Другими словами, CodeBlocks — это бесплатная IDE C / C ++, которая поставляется со встроенным компилятором.
- Загрузите кодовые блоки с www.codeblocks.org/downloads/binaries для своей соответствующей операционной системы.
- Пользователи Windows должны выбрать загружаемый файл, в названии которого есть «mingw», например
codeblocks-17.12mingw-setup.exe
. - Во время установки выберите Тип установки как «Минимум: важные плагины, важные лексеры» и убедитесь, что «MinGW Compiler Suite» отмечен флажком.Это гарантирует, что компилятор GCC также установлен с IDE.
Кодовые блоки Установить
Кодовые блоки Hello World
Настройка переменной PATH для Windows
После установки кодовых блоков вместе с ним устанавливается и компилятор GCC. Однако, если мы хотим запускать программы C из командной строки, мы должны добавить его каталог bin в переменную PATH.
- Перейдите в каталог установки и скопируйте путь к папке bin, например.грамм. « C: \ Program Files (x86) \ CodeBlocks \ MinGW \ bin »
- Перейдите в «Панель управления \ Система и безопасность \ Система», нажмите «Дополнительные параметры системы», а затем «Переменные среды».
- Найдите имя переменной «Путь» в пользовательских или системных (если вы являетесь администратором) переменными и нажмите «Изменить».
Свойства компьютера
- Если вы видите небольшое всплывающее окно, в поле «Значение переменной» перейдите в конец текста, поставьте точку с запятой «;» и вставьте путь к папке bin i.е. «C: \ Program Files (x86) \ CodeBlocks \ MinGW \ bin»
- Если вы видите большое всплывающее окно (обычно в Windows 10) со списком переменных пути, нажмите «Создать» и вставьте путь к папке «bin» .
- Если вы видите «gcc: фатальная ошибка: компиляция входных файлов не завершена», это означает, что GCC успешно установлен, и вы можете выйти из cmd.
- Если вы получили сообщение «gcc не распознается как внутренняя или внешняя команда», правильно выполните шаги для установки и настройки переменной Path.
Вот и все, что касается установки компилятора C / GCC в Windows. Теперь мы готовы исследовать особенности кодирования программирования на C.
.