Содержание

Выбираем бесплатный компилятор для C / C++

C — это простой процедурный язык программирования общего назначения. Он достаточно прост в освоении. В то же время он мощный, чтобы его можно было использовать для создания любой компьютерной программы.

C++ — это объектно-ориентированный язык программирования, который изначально был создан как надмножество C. Языки C и C++ являются одними из самых популярных технологий, используемых для написания программ.

Эта статья призвана помочь вам выбрать бесплатный компилятор для C / C++ для различных операционных систем.

Он может работать и создавать исполняемые файлы под Windows (16-разрядные, 32-разрядные и 64-разрядные версии), Linux (32-разрядные и 64-разрядные версии), OS / 2 и MS-DOS (16-разрядные и 32-разрядные режимы). Стоит пояснить, что Watcom — это был известный коммерческий компилятор, пока первоначальные разработчики не прекратили его продажи и не опубликовали исходный код (в соответствии с публичной лицензией Sybase Open Watcom).

Для индивидуальных или начинающих программистов Microsoft Visual Studio Community включает в себя много важных инструментов из коммерческих версий проекта. Вы получите в свое распоряжение IDE, отладчик, оптимизирующий компилятор, редактор, средства отладки и профилирования. С помощью этого пакета можно разрабатывать программы для настольных и мобильных версий Windows, а также Android. Компилятор C++ поддерживает большинство функций ISO C++ 11, некоторые из ISO C++ 14 и C++ 17. В то же время компилятор C уже безнадежно устарел и не имеет даже надлежащей поддержки C99.

Программное обеспечение также поставляется с поддержкой построения программ на C#, Visual Basic, F# и Python. В то время, когда я писал эту статью, на сайте проекта утверждалось, что Visual Studio Community 2015 «бесплатный инструмент для индивидуальных разработчиков, проектов с открытым исходным кодом, научных исследований, образовательных проектов и небольших профессиональных групп».

Clang — компилятор C, C++, Objective C и Objective C++, разработанный под Apple. Это часть проекта LLVM. Clang реализует различные стандарты ISO C и C++, такие как C11, ISO C++ 11, C++ 14 и частично C++ 1z.

Он также поддерживает расширения, которые можно найти в семействе компиляторов C GNU. Компилятор C для Windows выпущен под лицензией BSD. К сожалению, на момент написания этой статьи, он предоставляется только в исходной форме, и вам придется собирать его самостоятельно.

Проект MinGW-w64 предоставляет библиотеки, заголовки, необходимые компиляторам C и C++ GNU для работы в системе Windows. В случае MinGW-w64 эти файлы поддержки позволяют создавать 64-битные программы в дополнение к 32-битным. Проект также предоставляет кросс-компиляторы, так что можно скомпилировать программу Windows из системы Linux.

Это версия набора компиляторов Open64 (описанного ниже), которая была настроена для процессоров AMD и имеет дополнительные исправления ошибок. Компилятор C / C++ соответствует стандартам ANSI C99 и ISO C++ 98, поддерживает межъязыковые вызовы (так как он включает в себя компилятор Fortran), 32-битный и 64-битный код x86, векторную и скалярную генерацию кода SSE / SSE2 / SSE3, OpenMP 2. 5 для моделей с разделяемой памятью, MPICh3 для моделей с распределенной и разделяемой памятью; содержит оптимизатор, поддерживающий огромное количество оптимизаций (глобальную, цикл-узел, межпроцедурный анализ, обратную связь) и многое другое. Набор поставляется с оптимизированной AMD Core Math Library и документацией. Для этого набора компиляторов требуется Linux.

Является бесплатным компилятором для Windows 7 с открытым исходным кодом. Он генерирует код для Win32, Windows 3.1 (Win16), OS / 2, Netware NLM, MSDOS (16-битный и 32-битный режим) и т. д. Watcom был очень популярным компилятором несколько лет назад до тех пор, пока Sybase не закрыла его. Он также включает в себя довольно известный STLport (реализация библиотеки стандартных шаблонов C++). Обновление: этот проект, похоже, застопорился, и в настоящее время запущен новый проект Open Watcom V2 Fork (описан выше).

Digital Mars C / C ++ является заменой Symantec C++ с поддержкой компиляции программ для Win32, Windows 3. 1, MSDOS и 32-разрядных расширенных MSDOS. Если используемый ПК не имеет процессора с плавающей запятой (машины pre-Pentium), можно связать эмуляцию с плавающей запятой в вашей программе. Компилятор поддерживает определение C++ из аннотированного руководства по C++ (ARM) и расширенные функции языка AT & T версии 3.0, включая шаблоны, вложенные классы, вложенные типы, обработку исключений и идентификацию типа во время выполнения.

Это графический отладчик уровня исходного кода для X Window, который содержит встроенный интерпретатор языка C. Он может обрабатывать один или несколько исходных файлов. Можно использовать его для создания исполняемого файла с байтовым кодом и выполнения интерпретатора в этом исполняемом файле. Если вам нужен интерпретатор для отладки или создания прототипов программ, или просто для изучения языка, попробуйте этот инструмент. Он поддерживает следующие платформы: Solaris, SunOS, Linux, FreeBSD, BSD / OS и некоторые другие Unix-платформы.

Помните старый (популярный) компилятор C BDS для систем CP / M 8080 / Z80? В настоящее время этот компилятор языка C находится в публичном доступе, в комплекте с исходным кодом языка ассемблера. Пакет представляет собой розничную версию компилятора с компоновщиком и руководством пользователя. Его можно использовать для простой генерации кода 8080/8085 / Z80 для встраиваемых систем (то есть создавать собственные процедуры для замены любого кода библиотеки, который обращается к функциям операционной системы).

Это интегрированная среда разработки Win32, включающая в себя компилятор C++ egcs и отладчик GNU из среды Mingw32. А также редактор и другие средства, облегчающие разработку программ с использованием компилятора Mingw32 gcc на платформе Windows. Он также содержит программу установки для приложений.

Он работает как в Windows, так и в DOS, имеет интегрированную среду разработки с редактором программ (с подсветкой синтаксиса и автоматическим завершением кода). Он может генерировать программы для Win32 и MSDOS, а также файлы Intel и Motorola hex (что полезно, если вы пишете программы для встроенных систем). Для вывода MSDOS ваши программы будут использовать расширитель DOS.

DeSmet C должен быть знаком тем, кто программировал на C в 1980-х годах. Это компилятор C для MSDOS. Он был выпущен под лицензией GNU GPL и поставляется с руководствами, редактором и сторонним оптимизатором.

Xcode — это интегрированная среда разработки Apple, которая включает в себя редактор с подсветкой синтаксиса, систему управления сборкой, отладчик, компилятор C GNU (gcc), конструктор интерфейса, AppleScript Studio, поддержку разработки на Java, инструменты разработки WebObjects. Чтобы получить в свое распоряжение данные инструменты необходимо быть участником Apple Developer Connection (ADC). Но онлайн-членство является бесплатным.

Этот небольшой компилятор C для Linux и Windows генерирует оптимизированные двоичные файлы x86. Утверждается, что он собирает, компонует и связывает код в несколько раз быстрее, чем GCC. В настоящий момент разработчики стремятся обеспечить соответствие ISO C99. Компилятор также включает необязательную проверку границ. Он обрабатывает файлы скриптов C (просто добавьте в Linux shebang код #!/usr/local/bin/tcc -run в первую строку исходного кода на C, чтобы он выполнялся напрямую). TCC распространяется под лицензией GNU General Public License.

Это набор библиотек классов и компилятор Objective C, который преобразует код Objective C в простой C-код. Работает на Windows, Linux, OS / 2, Macintosh и т. д.

Эта система поставляется с компилятором GNU C / C++, который можно использовать для создания исполняемых файлов Win32. Она содержит собственный <windows.h>, который находится в открытом доступе. Предполагается, что приложения, созданные с использованием этой системы, будут быстрее, чем, те которые созданы с помощью Cygwin32, и они не ограничиваются положениями лицензии GNU. Mingw32 поставляется с инструментами для обработки текста (sed, grep), генератором лексического анализатора (flex), генератором парсеров (bison) и т. д. Mingw32 также поставляется с компилятором ресурсов Windows.

На странице компилятора C GNU можно получить ссылки на бинарные файлы и исходный код для компилятора GNU C. Также можно использовать приведенные в этой статье ссылки на наиболее часто запрашиваемые бинарные версии (MSDOS и Win32).

Еще один компилятор C, основанный на LCC (смотрите также LCC-Win32). Он включает в себя компилятор C, компоновщик, компилятор ресурсов, сообщений, утилиту make и другие инструменты. Он компилирует код для Windows и Pocket PC.

Пользователи Linux / Alpha теперь могут бесплатно скачивать и использовать компилятор Compaq, просто заполнив форму и приняв лицензионное соглашение. Компилятор может использоваться для генерации любых программ, коммерческих или иных. Он включает в себя математическую библиотеку и отладчик (ladebug), перенесенный из True64 Unix. Он поставляется с обычными справочными страницами, а также справочником по языку и руководством программиста.

Интерпретатор C / C++, поддерживающий стандарт ISO 1990 C (C90), основные функции C99, классы C++, а также расширения к языку С, такие как вложенные функции, строковый тип и т. д. Он может быть встроен в другие приложения и аппаратные средства, использоваться в качестве языка сценариев. Код C / C++ интерпретируется напрямую без компиляции промежуточного кода. Поскольку этот интерпретатор поддерживает Linux, Windows, MacOS X, Solaris и HP-UX, созданный вами код можно перенести на любую из этих платформ. Стандартная версия бесплатна для личного, академического и коммерческого использования. Для загрузки пакета необходимо зарегистрироваться.

Это система разработки, основанная на хорошо известном компиляторе C / C++ GNU. Она генерирует 32-разрядные исполняемые файлы MSDOS, которые являются файлами с длинными именами Windows 95. Это очень функциональная система с IDE, графическими библиотеками, генераторами лексического анализатора (flex), генераторами парсеров (bison), утилитами обработки текста и так далее. Компилятор языка C, утилиты и библиотеки поставляются с исходным кодом.

Cilk — это язык на основе ANSI C, который может использоваться для многопоточного параллельного программирования. Это особенно эффективно для использования динамического, высоко асинхронного параллелизма в стиле параллельных данных или передачи сообщений. На официальном сайте упоминается, что Cilk уже используется для разработки трех шахматных программ мирового класса: StarTech, Socrates и Cilkchess.

Это своего рода сочетание компилятора C и ассемблера, который позволяет «создавать программы с возможностями и читабельностью C, сохраняя при этом эффективность языка ассемблера». Он может создавать исполняемые файлы MSDOS или файлы .OBJ, которые можно применять вместе с другими компоновщиками для создания исполняемого файла. По приведенной выше ссылке можно найти исходный код и документацию для компилятора. Если вы хотите получить предварительно скомпилированный бинарный файл, это можно сделать на неофициальном сайте компилятора C— Sphinx.

Сайт этого компилятора написан на японском языке. Он выглядит как кросс-компилятор, позволяющий генерировать код для ROM. Старая версия компилятора (3.30c) предоставляется бесплатно. Бесплатная версия работает только на MSDOS.

Это кросс-компилятор C, предназначенный для микропроцессоров Intel 8051, DS390, Z80, HC08 и PIC. Он также может быть переназначен для других 8-битных микроконтроллеров или ОСТО. SDCC поставляется с перенастраиваемым ассемблером и компоновщиком, отладчиком исходного уровня и симулятором. Библиотеки совместимы со стандартом C99. Исходный код для компилятора доступен под лицензией GPL. Поддерживаются такие платформы, как Linux, Windows, Mac OS X, Alpha, Sparc и другие.

Это компилятор ANSI C для MSDOS / DPMI и Win32, который поставляется с библиотекой среды выполнения, компоновщиком, отладчиком, DOS-расширителем (версия MSDOS), IDE (версия Win32) и утилитой make. Также доступен исходный код. При работе в режиме совместимости с C99 он компилирует большинство конструкций C99.

Этот «проект» включает в себя коммерческий компилятор (GNU C / C++), который генерирует графический интерфейс Win32 и консольные приложения. Предоставляется исходный код компилятора, библиотек и инструментов. Обратите внимание, что опция по умолчанию в этом пакете требует от вас распространять исходный код, если вы компилируете и связываетесь со своими библиотеками. Существует также специальная вызываемая опция, которая задает возможность связи с альтернативными библиотеками, позволяя распространять свои приложения без источников.

Это компилятор C для Windows, который генерирует графический интерфейс Win32 и консольные приложения. Он поставляется со своим собственным компоновщиком, IDE, отладчиком, редактором и компилятором ресурсов. LCC-Win32 основан на компиляторе LCC и является бесплатным только для некоммерческого использования.

LCC — это компилятор C (только исходный код), который генерирует код для Alpha, Sparc, MIPS R3000 и Intel x86. Он является основой как минимум для двух других компиляторов Win32 C (также описанных выше).

Cyclone C не является компилятором ANSI C в строгом значении, а представляет собой компилятор «безопасного диалекта» C. Он обеспечивает безопасность типов, имеет множество проверок для защиты от переполнения буфера, связанных с массивами нарушений и т. д. В настоящее время он работает на Linux и Windows (в последнем случае через Cygwin), для него требуется наличие в системе инструментов компиляции GNU.

Это IDE на базе Macintosh, компилятор и отладчик для программ на C. Он включает в себя редактор с подсветкой синтаксиса, ANSI C компилятор, компилятор для языка визуализации ALPHA, редактор графов, обратимый виртуальный процессор и т. д.

Обратите внимание, что программы в код, который будет выполняться для виртуального ЦПУ. Виртуальная машина и отладчик позволяют выполнять код вперед и назад и поддерживать многозадачность. IDE поставляется с анимированными алгоритмами, примерами исходного кода таких игр, как Tetris, Checkers и других. IDE полезна для проверки и отладки исходного кода, поиска процессов, неэффективно использующих память и т. д.

Примечание: этот проект был прекращен.

Старый, но проверенный Turbo C 2.01 для DOS доступен бесплатно по решению новых владельцев Borland. Это был популярный компилятор C во времена MSDOS, известный своей быстрой сборкой, интегрированной средой разработки («IDE») и графической библиотекой (DOS).

Данная публикация является переводом статьи «Free C/C++ Compilers and Interpreters» , подготовленная редакцией проекта.

Какой выбрать C++ компилятор под Windows? — Хабр Q&A

Очень часто разработчики под windows с самого начала начинают работать с visual studio и с его немного несовместимым компилятором и std библиотеками, из-за чего последующие попытки собирать код из стандартного окружения порождают кучу работы, на нее забивают и продолжают сидеть на майкрософтовском.
Самостоятельная настройка окружения для сборки под windows тут возможна (без загрузки visual studio) но поверьте, вам не захочется вручную загружать и настраивать сотни пакетов, никто этой фигней не мается. Ставят visual studio с интерфейсом, а там никто не мешает использовать командную строку.

В общем случае, с вероятностью 99.9999999999%, вам будет НЕДОСТАТОЧНО только компилятора, вам нужны еще и библиотеки, настроенные на ваше окружение. Т.е. в зависимости от того под какую архитектуру и операционную систему вы собираете библиотеки/бинарники, и будет соответствующий ответ.

Наиболее полно готовый и почти настроенный тулчейн (почти и наверняка это будет gnu compiler, но ничто не помешает использовать clang) можно найти в linux операционных системах, т.

е настроив кросскомпиляцию из linux окружения можно будет собирать все, кроме наверное macos (ну там свои заморочки и это не невозможно).

Только там, одинаково просто, можно будет собирать как windows приложения так и arduino скетчи.

p.s. для настройки linux дистрибутива интернет вам понадобится только что для поиска документации, репозитории (тех же debian/ubuntu) можно приобрести на компакт дисках или сделать свой offline инсталятор.

p.p.s. вы можете попытаться использовать windows 10 (не домашние) подсистему linux, установив в нее ту же ubuntu, и без каких либо накладных расходов (это не виртуалка, это скорее wine наоборот) работать

Ближайший аналог удобного окружения но под windows это mingw (много рукошевелений) и cygwin, последняя так вообще копирует linux, но там свои заморочки, например файловые пути в итоговом приложении для совместимости будут вида /cygdrive/c/…., плюс совместимость dll своя, ни с чем не совместимая.

Какие компиляторы C, C++ вы используете? — Голосования — Голосования

Какие компиляторы C, C++ вы используете? — Голосования — Голосования

 c, c++, компилятор

  1. GCC736 (90%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Clang278 (34%)

    ************************************************************************************************************************

  3. Microsoft Visual C++166 (20%)

    ************************************************************************

  4. MinGW149 (18%)

    ****************************************************************

  5. Intel C++ compiler30 (4%)

    *************

  6. Другое (в комментарии)26 (3%)

    ***********

  7. Tiny C Compiler21 (3%)

    *********

  8. SDCC21 (3%)

    *********

  9. Open Watcom13 (2%)

    *****

  10. Самописный12 (1%)

    *****

  11. Borland Free Compiler11 (1%)

    ****

  12. Turbo C6 (1%)

    **

  13. DJGPP5 (1%)

    **

  14. Portable C Compiler3 (0%)

    *

  15. BDS C2 (0%)

Всего голосов: 1479, всего проголосовавших: 820

splinter ★★★★★
)

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

Похожие темы

О Сервере — Правила форума — Правила разметки (LORCODE) — Правила разметки (Markdown)

https://www.linux.org.ru/

LCC — оптимизирующий языковой компилятор (ТВГИ.00500-01)/МЦСТ

Фирменный компилятор компании АО «МЦСТ» — разработчика архитектуры Эльбрус. Поддерживает языки программирования C, C++, Fortran. Во многом совместим с компилятором GCC (GNU Compiler Collection) — как по параметрам запуска, так и по GNU-расширениям языков. Обладает развитыми средствами оптимизации генерируемого машинного кода, позволяющими выбирать между быстродействием программы и её размером, а также длительностью компиляции.

Выпускается для компьютеров архитектуры Эльбрус и МЦСТ-R (SPARC). Поставляется в составе Системы программирования «Эльбрус» — штатно вместе с операционной системой либо или отдельно, по договору поставки.

Кросс-компилятор — это вариант компилятора, функционирующий на компьютерах архитектуры x86-64 и при этом выдающий машинный код архитектуры Эльбрус или SPARC. Получить кросс-компилятор можно по запросу в службу поддержки при наличии лицензии на право использования обычного компилятора (системы программирования) — для этого необходимо сообщить модель компьютера (процессора), наименование и номер версии целевой операционной системы. Вместе с кросс-компилятором для удобства может быть предоставлен архив файлов предустановленной системы «Эльбрус Линукс», если она является целевой системой для сборки программ.

Версия LCC1.251.241.231.211.19
Год выпуска 2020 2019 2018 2016 2014
Поддержка C GCC≈ 7. 3 7.3 5.5 4.8 4.4
C11 +
C99 + + + + +
C90 + + + + +
Поддержка C++ GCC≈ 7.3 7.3 5.5 4.8 4.4
C++20 ±
C++17 ± ±
C++14
+ + + ±²
C++11 + + + ±²
C++03 + + + + +
C++98 + + + + +
Поддержка Fortran GCC≈ 5.
5
5.5 4.9 4.9 4.4
F18 ± ±
F08 ± ± ± ±
F03 ± ± ± ±
F95 + + + + +

Знак „+“ означает, что стандарт поддержан полностью, „±“ означает поддержку в экспериментальном режиме и/или неполностью — см. сноски и документацию, „−“ означает отсутствие поддержки данного языкового стандарта в данной версии компилятора.

В графе „-std=” указан режим поддержки языкового стандарта по умолчанию. Другие режимы можно задать параметром „-std=” согласно приведённому перечню полностью или частично (экспериментально) поддерживаемых, в том числе с расширениями GNU.

¹ Стандарт C11 (ISO/IEC 9899:2011) в версиях LCC 1.21–1.24 был поддержан полностью за исключением необязательного расширения _Atomic.

² Стандарты C++11 (ISO/IEC 14882:2011) и C++14 (ISO/IEC 14882:2014) в версии LCC 1.21 были поддержаны полностью в языковой части, однако в библиотечной части отсутствовала поддержка классов std::exception_ptr и std::nested_exception — это было обусловлено отсутствием поддержки zero cost exceptions (0eh) со стороны компилятора на тот момент.

Компиляторы C, Ada и SPARK для архитектуры RISC-V

Компания AdaCore, производитель средств разработки и верификации ПО критически важных для безопасности встраиваемых систем, внесла свой вклад в поддержку архитектуры RISC-V, выпустив компиляторы для языков C и Ada, а также для языка SPARK – подмножества языка Ada, позволяющего проводить формальную верификацию. Компиляторы AdaCore GNAT Pro сопровождаются документацией для сертификации по стандартам функциональной безопасности DO-178C (авионика), МЭК 61508 (промышленные системы управления), EN 50128 (железнодорожные системы) и ISO 26262 (автоэлектроника). Компиляторы GNAT Pro поддерживают 32-бит и 64-бит RISC-V, а бесплатный вариант компилятора GNAT Community – 32-бит RISC-V.

Процессорная архитектура RISC-V разработана в Университете Беркли и поддерживается консорциумом RISC-V International, объединяющим более 500 компаний, среди которых NVIDIA, NXP, Marvell, Google, Thales, Samsung, Qualcomm и Western Digital. Архитектура RISC-V является открытой и доступна для свободного и бесплатного использования разработчиками в качестве процессорного ядра систем-на-кристалле.

Недавно NVIDIA и AdaCore начали сотрудничество по применению языков программирования Ada и SPARK для разработки критически важного для информационной безопасности (security critical) ПО будущих систем-на-кристалле NVIDIA, построенных на базе открытой архитектуры RISC-V. Переходы NVIDIA на архитектуру RISC-V и на языки Ada и SPARK обусловлены возросшими требованиями к безопасности и защищенности ПО, которые предъявляются новыми ответственными применениями, такими как автоматизированные и автоматические транспортные средства.

На странице www.adacore.com/resources можно загрузить руководство «AdaCore Technologies for Cyber Security» по применению языков Ada и SPARK и продуктов AdaCore для разработки ПО, критически важного для информационной безопасности.

Язык программирования Ada создавался специально для разработки ПО с повышенными требованиями к надежности и в настоящее время является основным языком для разработки ПО систем, критически важных для безопасности. Язык Ada – это международный стандарт ISO 8652. В последней редакции стандарта ISO 8652-2012 (Ada 2012) введена конструкция для задания «контрактов» – требований к результатам работы программного модуля, описанных непосредственно в тексте программы на языке Ada. «Контракт» используется компилятором для вставки динамических проверок или средствами статического анализа – для формальной верификации. Язык SPARK является подмножеством Ada 2012, позволяющим проводить формальную верификацию ПО – доказательство математическими методами, что ПО делает то, что от него требуется и не делает того, что не требуется.

Комплекс инструментальных средств GNAT Pro Ada включает компилятор, поддерживающий все версии стандартов Ada (Ada 83, Ada 95, Ada 2005 и Ada 2012), интегрированную среду разработки, визуальный отладчик, средства автоматизации тестирования, средства статического анализа (контроль стандартов кодирования, сбор метрик программного кода, анализатор стека), средства формальной верификации (доказательства корректности работы ПО с помощью математических методов) и средства интеграции программ Ada и C/C++.

Facebook

Twitter

Вконтакте

Google+

Конфигурация компилятора: Выбор стандарта языка С++ | Уроки С++

  Обновл. 7 Июн 2021  | 

Как с огромным количеством различных версий языка C++ (C++98, C++03, C++11, C++14, C++17, C++20) компилятор понимает, какую из них ему следует использовать? Как правило, компилятор выбирает стандарт языка по умолчанию (часто не самый последний языковой стандарт). Если вы хотите использовать другой стандарт, то вам придется внести изменения в настройки вашей IDE/компилятора. Эти настройки применяются только к текущему проекту. При создании нового проекта вам придется всё делать заново.

Кодовые имена для версий языка С++

Обратите внимание на то, что каждый языковый стандарт имеет название, указывающее на год его принятия/утверждения (например, C++17 был принят/утвержден в 2017 году).

Однако, когда согласовывается новый языковой стандарт, неясно, в каком году удастся его принять, поэтому действующим языковым стандартам присваиваются кодовые имена, которые затем заменяются фактическими именами при доработке стандарта. Например, C++11 назывался c++1x, пока над ним вели работу. Вы можете по-прежнему видеть на просторах Интернета подобные кодовые имена (особенно, когда речь заходит о будущей версии языкового стандарта, у которого еще нет окончательного названия).

Вот сопоставление кодовых имен версий С++ с их окончательными названиями:

   c++1x = C++11

   c++1y = C++14

   c++1z = C++17

   c++2a = C++20

Например, если вы видите c++1z, то знайте, что речь идет о стандарте C++17.

Установка стандарта языка С++ в Visual Studio

На момент написания данной статьи, Visual Studio 2019 по умолчанию использует возможности C++14, что не позволяет использовать более новые фичи, представленные в C++17 и в C++20.

Чтобы использовать новый функционал, вам необходимо подключить новый языковой стандарт. К сожалению, сейчас нет способа сделать это глобально — вы должны делать это к каждому проекту индивидуально.

Чтобы использовать новый языковый стандарт в Visual Studio, откройте ваш проект, затем щелкните правой кнопкой мышки по названию вашего проекта в меню "Обозреватель решений" > "Свойства":

В диалоговом окне вашего проекта убедитесь, что в пункте "Конфигурация" установлено значение "Все конфигурации". Затем перейдите на вкладку "C/C++" > "Язык" и в пункте "Стандарт языка С++" выберите ту версию языка С++, которую хотели бы использовать:

На момент написания данной статьи, я рекомендую выбрать "Стандарт ISO C++17 (/std:c++17)", который является последним стабильным стандартом.

Если вы хотите поэкспериментировать с возможностями грядущего стандарта языка C++ — C++20, то вы можете выбрать пункт "Предварительная версия ... (/std:c++latest)". Просто помните, что его поддержка может иметь баги.

Установка стандарта языка C++ в Code::Blocks

Code::Blocks по умолчанию может использовать стандарт C++11. Хорошей новостью является то, что Code::Blocks позволяет устанавливать ваш стандарт языка С++ глобально, поэтому вы можете установить его один раз и сразу на все проекты (а не для каждого проекта в индивидуальном порядке). Для этого перейдите в меню "Settings" > "Compiler":

Затем на вкладке "Compiler flags" найдите следующие пункты меню:

Отметьте тот пункт, у которого число обозначает ближайший (к текущему) год утверждения стабильной версии и нажмите "ОК" (на вышеприведенном скриншоте этим пунктом является "Have g++ follow the C++17 ISO C++ language standard [-std=c++17]").

Примечание: Если вы не нашли в ваших настройках опцию с C++17, то вам следует обновить вашу версию Code::Blocks.

Установка стандарта языка С++ в GCC/G++

В GCC/G++ вы можете прописать соответствующие флаги -std=c++11, -std=c++14, -std=c++17 или -std=c++2a, чтобы подключить функционал C++11/14/17/20, соответственно.

Тестирование вашего компилятора

После подключения версии C++17 или выше, вы можете провести тест, который позволит понять, всё ли верно сделано и действительно ли подключена новая версия языка С++. Следующая программа в С++17 должна выполниться без каких-либо предупреждений или ошибок:

#include <array> #include <iostream> #include <string_view> #include <tuple> #include <type_traits> namespace a::b::c { inline constexpr std::string_view str{ «hello» }; } template <class. .. T> std::tuple<std::size_t, std::common_type_t<T…>> sum(T… args) { return { sizeof…(T), (args + …) }; } int main() { auto [iNumbers, iSum]{ sum(1, 2, 3) }; std::cout << a::b::c::str << ‘ ‘ << iNumbers << ‘ ‘ << iSum << ‘\n’; std::array arr{ 1, 2, 3 }; std::cout << std::size(arr) << ‘\n’; return 0; }

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

#include <array>

#include <iostream>

#include <string_view>

#include <tuple>

#include <type_traits>

namespace a::b::c

{

    inline constexpr std::string_view str{ «hello» };

}

template <class. .. T>

std::tuple<std::size_t, std::common_type_t<T…>> sum(T… args)

{

    return { sizeof…(T), (args + …) };

}

int main()

{

    auto [iNumbers, iSum]{ sum(1, 2, 3) };

    std::cout << a::b::c::str << ‘ ‘ << iNumbers << ‘ ‘ << iSum << ‘\n’;

    std::array arr{ 1, 2, 3 };

    std::cout << std::size(arr) << ‘\n’;

    return 0;

}

Если вы не можете скомпилировать этот код, то либо вы не подключили C++17, либо ваш компилятор не полностью поддерживает C++17. В последнем случае обновите версию IDE или компилятора.


Оценить статью:

Загрузка…

Поделиться в социальных сетях:

C++ Compiler — Embarcadero Website


Бесплатно загрузите C++ Compiler для C++Builder, который включает поддержку синтаксиса C++11, фреймворк Dinkumware STL (Standard Template Library) и полную Embarcadero C/C++ Runtime Library (RTL). В этой бесплатной версии вы также найдете ряд инструментов C++ для использования в командной строке — таких, как быстродействующий компоновщик (linker) и компилятор ресурсов.

The Free C++ Compiler download includes:

  • Компилятор Embarcadero C++ (bcc32c/bcc32x)
  • Пошаговый компоновщик Turbo (tlink32)
  • ​Предпроцессор C++ Win32 (cpp32)
  • Утилита библиотеки импорта — для создания библиотек импорта из библиотек динамической загрузки (DLL) (implib)
  • Библиотекарь для преобразования регистра символов, создания расширенных библиотек и изменения размера страницы (tlib)
  • Прочие полезные утилиты командной строки, например, make, grep и touch
  • ​Включает в себя библиотеку этапа исполнения Embarcadero C/C++ и библиотеку стандартных шаблонов DinkumwareANSI/ISO (STL)

C++Builder включает в себя компиляторы для Win64, macOS, iOS и Android. А C++Builder также оснащен современной, высокопроизводительной интегрированной средой разработки RAD Studio, инструментами отладки и имеет подключение корпоративного уровня для ускорения межплатформенного развития интерфейса пользователя. Более подробная информация о RAD Studio представлена на странице продукта.

C++ is available in three editions — Free, Community or Pro/Enterprise/Architect.

Бесплатный компилятор C++ C++Builder
Community Edition
C++Builder
Pro, Enterprise или Architect *
Kомпиляторов C++ на основе Clang
C++11
Исходный код библиотек С ограничениями С ограничениями
Лицензия на коммерческое использование Один пользователь Ограниченное (отлично подходит для начинающего бизнеса) Полная
Создание и развертывание для Win32
Создание и развертывание для Win64
Создание и развертывание для macOS
Создание и развертывание для iOS
Создание и развертывание для Android
Интегрированная среда разработки и встроенное средство отладки с дополнением кода и прочими инструментами
Межплатформенные инструменты разработки пользовательского интерфейса
Средство разработки для различных устройств (создайте пользовательский интерфейс лишь однажды, выполните тонкую настройку для каждой из платформ или каждого устройства)
Приложения баз данных (локальные или многоуровневые) Только местные

(*) See the полной таблице возможностей of Community, Pro, Enterprise and Architect.

Как получить компилятор C++

Бесплатная загрузка компилятора

Загрузите компилятор Embarcadero C++ (BCC32C/BCC32X) и инструменты командной строки, нажав на ссылку ниже.

Download Now

C++Builder Community Edition

Приступайте к работе с самым быстрым инструментом для программирования C++ вместе с нашей версией C++Builder Community Edition! C++Builder Community Edition включает в себя самую последнюю версию компилятора C++. Чтобы узнать больше о версии C++Builder Community Edition нажмите на ссылку ниже.
Подробные сведения о C++Builder Community Edition >

Learn more

30-дневная бесплатная лицензия

Нажмите на ссылку ниже, чтобы получить 30-дневную лицензию на пробное использование полной интегрированной среды разработки C++Builder. Эта полнофункциональная версия включает в себя новейшие компиляторы для Windows, macOS, Android и iOS, а также полную версию интегрированной среды разработки и средства визуальной разработки.
Загрузить пробную версию C++Builder >

Download Now

выпусков GCC — Проект GNU — Фонд свободного программного обеспечения (FSF)

Выпуски GCC — Проект GNU — Фонд свободного программного обеспечения (ФСПО)

Скачать

Релизы

GCC можно скачать с нашего зеркала сайтов.

Важно: это исходные версии, поэтому будет мало используйте, если у вас еще не установлен компилятор C ++. Как один из вариантов, есть предварительно скомпилированный двоичные файлы. для различных платформ.

Вы также можете получить наши источники с помощью Git.

График GCC

Таблица отсортирована по дате.Пожалуйста, обратитесь к нашему план развития на будущее выпусков и альтернативный просмотр истории выпусков.

Выпуск Дата выпуска
GCC 8.5 14 мая 2021 г.
GCC 11,1 27 апреля 2021 г.
GCC 10,3 8 апреля 2021 г.
GCC 10,2 23 июля 2020 г.
GCC 10.1 7 мая 2020 г.
GCC 9.3 12 марта 2020 г.
GCC 8.4 4 марта 2020 г.
GCC 7.5 14 ноября 2019 г.
GCC 9,2 12 августа 2019 г.
GCC 9,1 3 мая 2019 г.
GCC 8,3 22 февраля 2019 г.
GCC 7,4 6 декабря 2018 г.
GCC 6.5 26 октября 2018 г.
GCC 8.2 26 июля 2018 г.
GCC 8.1 2 мая 2018 г.
GCC 7.3 25 января 2018 г.
GCC 5.5 10 октября 2017 г.
GCC 7.2 14 августа 2017 г.
GCC 6.4 4 июля 2017 г.
GCC 7.1 2 мая 2017 г.
GCC 6. 3 21 декабря 2016 г.
GCC 6.2 22 августа 2016 г.
GCC 4.9.4 3 августа 2016 г.
GCC 5.4 3 июня 2016 г.
GCC 6.1 27 апреля 2016 г.
GCC 5.3 4 декабря 2015 г.
GCC 5.2 16 июля 2015 г.
GCC 4.9.3 26 июня 2015 г.
GCC 4.8.5 23 июня 2015 г.
GCC 5.1 22 апреля 2015 г.
GCC 4.8.4 19 декабря 2014 г.
GCC 4.9.2 30 октября 2014 г.
GCC 4.9.1 16 июля 2014 г.
GCC 4.7.4 12 июня 2014 г.
GCC 4.8.3 22 мая 2014 г.
GCC 4.9.0 22 апреля 2014 г.
GCC 4.8.2 16 октября 2013 г.
GCC 4. 8.1 31 мая 2013 г.
GCC 4.6.4 12 апреля 2013 г.
GCC 4.7.3 11 апреля 2013 г.
GCC 4.8.0 22 марта 2013 г.
GCC 4.7.2 20 сентября 2012 г.
GCC 4.5.4 2 июля 2012 г.
GCC 4.7.1 14 июня 2012 г.
GCC 4.7.0 22 марта 2012 г.
GCC 4.4.7 13 марта 2012 г.
GCC 4.6.3 1 марта 2012 г.
GCC 4.6.2 26 октября 2011 г.
GCC 4.6.1 27 июня 2011 г.
GCC 4.3.6 27 июня 2011 г.
GCC 4.5.3 28 апреля 2011 г.
GCC 4.4.6 16 апреля 2011 г.
GCC 4.6.0 25 марта 2011 г.
GCC 4.5.2 16 декабря 2010 г.
GCC 4. 4.5 1 октября 2010 г.
GCC 4.5.1 31 июля 2010 г.
GCC 4.3.5 22 мая 2010 г.
GCC 4.4.4 29 апреля 2010 г.
GCC 4.5.0 14 апреля 2010 г.
GCC 4.4.3 21 января 2010 г.
GCC 4.4.2 15 октября 2009 г.
GCC 4.3.4 4 августа 2009 г.
GCC 4.4.1 22 июля 2009 г.
GCC 4.4.0 21 апреля 2009 г.
GCC 4.3.3 24 января 2009 г.
GCC 4.3.2 27 августа 2008 г.
GCC 4.3.1 6 июня 2008 г.
GCC 4.2.4 19 мая 2008 г.
GCC 4.3.0 5 марта 2008 г.
GCC 4.2.3 1 февраля 2008 г.
GCC 4.2.2 7 октября 2007 г.
GCC 4. 2.1 18 июля 2007 г.
GCC 4.2.0 13 мая 2007 г.
GCC 4.1.2 13 февраля 2007 г.
GCC 4.0.4 31 января 2007 г.
GCC 4.1.1 24 мая 2006 г.
GCC 4.0.3 10 марта 2006 г.
GCC 3.4.6 6 марта 2006 г.
GCC 4.1.0 28 февраля 2006 г.
GCC 3.4.5 30 ноября 2005 г.
GCC 4.0.2 28 сентября 2005 г.
GCC 4.0.1 7 июля 2005 г.
GCC 3.4.4 18 мая 2005 г.
GCC 3.3.6 3 мая 2005 г.
GCC 4.0.0 20 апреля 2005 г.
GCC 3.4.3 4 ноября 2004 г.
GCC 3.3.5 30 сентября 2004 г.
GCC 3.4.2 6 сентября 2004 г.
GCC 3. 4.1 1 июля 2004 г.
GCC 3.3.4 31 мая 2004 г.
GCC 3.4.0 18 апреля 2004 г.
GCC 3.3.3 14 февраля 2004 г.
GCC 3.3.2 17 октября 2003 г.
GCC 3.3.1 8 августа 2003 г.
GCC 3.3 13 мая 2003 г.
GCC 3.2.3 22 апреля 2003 г.
GCC 3.2.2 5 февраля 2003 г.
GCC 3.2.1 19 ноября 2002 г.
GCC 3.2 14 августа 2002 г.
GCC 3.1.1 25 июля 2002 г.
GCC 3.1 15 мая 2002 г.
ОКУ 3.0,4 20 февраля 2002 г.
GCC 3.0.3 20 декабря 2001 г.
GCC 3.0.2 25 октября 2001 г.
GCC 3.0.1 20 августа 2001 г.
GCC 3. 0 18 июня 2001 г.
GCC 2.95.3 16 марта 2001 г.
GCC 2.95.2 24 октября 1999 г.
GCC 2.95.1 август 19, 1999
GCC 2.95 31 июля 1999 г.
EGCS 1.1.2 15 марта 1999 г.
EGCS 1.1.1 1 декабря 1998 г.
EGCS 1.1 3 сентября 1998 г.
EGCS 1.0.3 15 мая 1998 г.
EGCS 1.0.2 16 марта 1998 г.
gcc 2.8.1 2 марта 1998 г.
gcc 2.8.0 январь 7, 1998
EGCS 1.0,1 6 января 1998 г.
EGCS 1,0 3 декабря 1997 г.
2.7.2.3 22 августа 1997 г.
2.7.2.2 29 января 1997 г.
2,7 .2.1 29 июня 1996 г.
2. 7.2 26 ноября 1995 г.
2.7.1 12 ноября 1995 г.
2.7.0 16 июня 1995 г.
2.6.3 30 ноября 1994 г.
2.6.2 12 ноября 1994 г.
2.6.1 1 ноября 1994 г.
2,6.0 14 июля 1994 г.
2.5.8 24 января 1994 г.
2.5.7 12 декабря 1993 г.
2.5.6 3 декабря 1993 г.
2.5.5 27 ноября 1993 г.
2.5.4 16 ноября 1993 г.
2.5.3 11 ноября 1993 г.
2.5.2 1 ноября 1993 г.
2.5.1 31 октября 1993 г.
2.5.0 22 октября 1993 г.
2.4.5 20 июня 1993 г.
2.4.4 19 июня 1993 г.
2.4.3 1 июня 1993 г.
2.4.2 31 мая 1993 г.
2.4.1 26 мая 1993 г.
2.4.0 17 мая 1993 г.
2.3.3 26 декабря 1992 г.
2.3.2 27 ноября 1992 г.
2.3.1 1 ноября 1992 г.
2.3 31 октября 1992 г.
2.2.2 14 июня 1992 г.
2.2.1 9 июня 1992 г.
2.2 8 июня 1992 г.
2.1 24 марта 1992 г.
2,0 ​​ 22 февраля 1992 г.
1,42,0 (g ++) 20 сентября 1992 г.
1,42 20 сентября 1992 г.
1,41 27 августа 1992 г.
1.41.0 (g ++) 13 июля 1992 г.
1.40.3 (g ++) 19 октября 1991 г.
1.40 1 июня 1991 г.
1.39,1 (g ++) 4 мая 1991 г.
1,39 16 января 1991 г.
1,38 21 декабря 1990 г.
1,37.1 (g ++) 1 марта 1990 г.
1,37,0 (g ++) 28 февраля 1990 г.
1,37,1 21 февраля 1990 г.
1,37 11 февраля 1990 г.
1,36,4 (g ++) 30 января 1990 г.
1.36,3 (g ++) 16 января 1990 г.
1,36 24 сентября 1989 г.
1,35 26 апреля 1989 г.
1,34 23 февраля 1989 г.
1,33 1 февраля 1989 г.
1,32 21 декабря 1988 г.
1,31 19 ноября 1988 г.
1,30 13 октября 1988 г.
1.29 6 октября 1988 г.
1,28 14 сентября 1988 г.
1,27 5 сентября 1988 г.
1,26 18 августа 1988 г.
1,25 3 августа, 1988
1,24 2 июля 1988 г.
1,23 26 июня 1988 г.
1,22 22 мая 1988 г.
1,21 1 мая 1988 г.
1 .20 19 апреля 1988 г.
1,19 29 марта 1988 г.
1,18 4 февраля 1988 г.
1,17 9 января 1988 г.
1,16 19 декабря, 1987
1,15,3 (g ++) 18 декабря 1987 г.
1,15 28 ноября 1987 г.
1,14 6 ноября 1987 г.
1.13 12 октября 1987 г.
1,12 3 октября 1987 г.
1,11 5 сентября 1987 г. (объявлено поздно)
1,10 22 августа 1987 г.
1,9 18 августа 1987 г. (не объявлено)
1,8 10 августа 1987 г.
1,7 21 июля 1987 г.
1,6 2 июля 1987 г.
1.5 18 июня 1987 г.
1,4 13 июня 1987 г.
1,3 10 июня 1987 г.
1,2 1 июня 1987 г.
1,1 24 мая, 1987
1,0 23 мая 1987 г.
0,9 (первая бета-версия) 22 марта 1987 г.

Установка GCC — Проект GNU — Фонд свободного программного обеспечения (FSF)

Установка GCC — Проект GNU — Фонд свободного программного обеспечения (ФСПО)

Последняя версия этого документа всегда доступна по адресу http: // gcc.gnu.org/install/. Это относится к текущим источникам разработки, инструкциям по конкретные выпущенные версии включены в исходные тексты.

В этом документе также описывается общая процедура установки для GCC. как подробные инструкции по установке для конкретных целей.

GCC включает несколько компонентов, которые ранее были отдельными дистрибутивами с собственными инструкциями по установке. Этот документ заменяет все инструкции по установке для конкретного пакета.

Перед запуском процедуры сборки / установки проверьте Замечания по установке для конкретного хоста / цели.Мы рекомендуем вам просмотреть все общие инструкции по установке перед вы продолжаете.

Списки успешных сборок для выпущенных версий GCC: доступно по адресу http://gcc.gnu.org/buildstat.html. Эти списки обновляются по мере поступления новой информации.

Сама процедура установки разбита на пять шагов.

  1. Предварительные требования
  2. Скачивание исходного кода
  3. Конфигурация
  4. Дом
  5. Тестирование (по желанию)
  6. Окончательная установка

Обратите внимание, что GCC не поддерживает « make uninstall » и, возможно, не сделаю этого в ближайшем будущем, так как это может открыть банку с червями.Вместо, мы предлагаем вам установить GCC в отдельный каталог и просто удалите этот каталог, если вам не нужна эта конкретная версия GCC больше, и, если там также установлены разделяемые библиотеки, нет существует больше двоичных файлов, которые их используют.

Есть также несколько старых инструкций по установке, которые в основном устарели, но все же содержат некоторую информацию, еще не включены в основную часть этого руководства.


Вернуться на страницу установки GCC

Авторские права © 1988-2021 Free Software Foundation, Inc.

Разрешено копировать, распространять и / или изменять этот документ. в соответствии с условиями лицензии свободной документации GNU версии 1.3 или любая более поздняя версия, опубликованная Free Software Foundation; без Неизменяемые разделы, текст на лицевой стороне обложки (а) (см. Ниже) и с текстами на задней обложке (b) (см. ниже). Копия лицензия включена в раздел под названием «GNU Лицензия на бесплатную документацию ».

(a) Текст на передней обложке FSF:

Руководство GNU

(b) Текст на задней обложке FSF:

Вы имеете право копировать и изменять это Руководство GNU, например GNU программное обеспечение.Копии, опубликованные Фондом свободного программного обеспечения, вызывают средства на разработку GNU.

Список компиляторов C (еще в 1973 г., а последний — в 2017 г.)

Время чтения: 20 минут

Существует более 50 компиляторов для C , таких как ICC от Intel до GNU GCC от GNU Project. При наличии нескольких компиляторов основное внимание уделяется оптимизации скомпилированного кода C для конкретных аппаратных и программных сред. Это привело к появлению огромного количества компиляторов, но некоторые из них были заброшены.

Некоторые компиляторы были разработаны в 1970-х (PCCM от Bell Labs), а последние — от 2017 (AOCC от AMD).

Некоторые компиляторы, такие как LabWindows, используются небольшой группой разработчиков. В то же время есть компиляторы, такие как GNU GCC и ICC, которые до сих пор широко используются.

Ниже приводится окончательный список компиляторов C , найденных некоторыми пользователями:

Компилятор Версия Разработчик в широком использовании Пользователи
pccm 1973 Bell Labs Нет Общие
BSD C 1979 Золман Нет BSD Unix
Ацтек К 1980 Системы программного обеспечения Мэн Нет ДОС
ACK 1980 Таненбаум, Джейкобс Есть NetBSD
Решетка C 1982 Стив Крюгер Нет ДОС
Максимально допустимая масса автомобиля 1986 Яблоко Нет Ранний Mac
GCC 1987 Проект GNU Есть Общие
Турбина C 1987 Турбо Нет Turbo IDE
Megamax C 1988 Megamax, Inc Нет Atari + Mac
Желудь C 1988 Желудь Есть RISC OS
LabWindows 1989 Национальные инструменты Есть Сетевая карта
QuickC 1990 Microsoft Нет ДОС
Oracle C 1991 Оракул Есть Oracle Developer Studio
MinGW 1993 Петерс Есть Окна
MSVC 1993 Microsoft Есть Visual IDE
CodeWarrior 1993 Metrowerks Нет Моторола 68К
LCC 1994 Дэйв Хэнсон, Крис Фрейзер Нет MathWorks
куб.см 65 1999 Bassewitz Есть Старые системы 6502
Открыть 64 2002 Open64 dev Есть Itanium, x86-64
ICC 2003 Intel Есть Системы Intel
Watcom C 2003 Watcom Есть General + Novell
PathScale 2003 PathScale Нет MIPS
ПЛИС C 2005 Бас Есть ПЛИС
ТСС 2005 Фабрис Беллар Есть Различные библиотеки
Класс 2007 Разработчики LLVM Есть Общие
XL C 2007 IBM Нет Системы IBM
HP-C 2012 л.с. Нет Системы HP
AOCC 2017 драм Есть Системы AMD

Помимо этого, есть несколько других компиляторов, которые не использовались значительным числом пользователей и были получены из нескольких источников, например:

  • Университетские исследовательские проекты
  • При поддержке компаний, но не удалось привлечь пользователей
  • Экспериментальные проекты небольшой группы разработчиков

Почему некоторые компиляторы вышли из употребления?

Один из ярких примеров — PCCM .В то время он широко использовался как общий компилятор, но с появлением лучших компиляторов, таких как GCC, пользователи отказались от него.

Иногда спонсирующие компании распускаются, что приводит к падению таких компиляторов, как PathScale . Другой пример — компилятор CodeWarrior, который в основном предназначался для устройств Motorolla, и из-за его закрытия этот компилятор вышел из употребления.

У некоторых вышла из строя зона фокусировки. QuickC от Microsoft был для DOS, и по мере того, как Microsoft продолжала разрабатывать лучшую операционную систему, они отказались от QuickC и разработали лучшие компиляторы для новых операционных систем.

Зачем нам нужно несколько компиляторов?

Нам нужно несколько компиляторов, потому что:

  • Набор команд, оптимизированный для конкретной аппаратной системы, различается.
  • Операционная система играет важную роль в выполнении.

Следовательно, компилятор может быть оптимизирован для:

  • конкретная аппаратная система
  • конкретная операционная система
  • Отдельная нагрузка на систему, например, распределенная, в реальном времени и другие.

Например: ICC по Intel оптимизирован для систем Intel, а AOCC оптимизирован для систем AMD.Другие компиляторы, такие как GCC, фокусируются на общей оптимизации аппаратных функций, которые являются довольно стандартными.

Компилятор

ACK, выпущенный в 1980 году, был оптимизирован для операционной системы OpenBSD. Точно так же другие компиляторы ориентированы на разные операционные системы.

Таким образом, у вас будет хорошее представление о том, как компиляторы развивались с годами и как различаются направления каждого компилятора.

Фронтенд семейства языков

Clang C для LLVM

Проект Clang предоставляет интерфейсную языковую и инструментальную инфраструктуру. для языков семейства C (C, C ++, Objective C / C ++, OpenCL, CUDA и RenderScript) для LLVM проект.И драйвер компилятора, совместимый с GCC (clang), и Предоставляется драйвер компилятора, совместимый с MSVC (clang-cl.exe). Ты можете получить и собрать исходный код сегодня.

Особенности и цели

Некоторые из целей проекта включают следующее:

Функции конечного пользователя :

  • Быстрые компиляции и низкое использование памяти
  • Экспресс-диагностика (примеры)
  • Совместимость с GCC

Коммунальные и Приложения :

  • Архитектура на основе модульной библиотеки
  • Поддержка разнообразных клиентов (рефакторинг, статический анализ, генерация кода, и т.п.)
  • Обеспечивает тесную интеграцию с IDE
  • Используйте лицензию LLVM Apache 2

Внутренний дизайн и Реализация :

  • Реальный компилятор производственного качества
  • Простая и поддающаяся взлому кодовая база
  • Единый унифицированный синтаксический анализатор для C, Objective C, C ++ и Objective C ++
  • Соответствие C / C ++ / ObjC и их вариантам

Конечно, это лишь приблизительный набросок целей и особенностей Лязг.Чтобы получить истинное представление о том, что это такое, см. Раздел «Возможности», в котором каждый из них и объясняет их более подробно.

Почему?

Разработка нового интерфейса началась по необходимости для компилятора, который обеспечивает лучшую диагностику, лучшую интеграцию с IDE, лицензия, совместимая с коммерческими продуктами, и шустрый компилятор, который легко разрабатывать и поддерживать. Все это были мотивация для начала работы над новым интерфейсом, который мог бы удовлетворить эти потребности.

Текущее состояние

Clang считается быть производственным компилятором C, Objective-C, C ++ и Objective-C ++, когда нацелены на X86-32, X86-64 и ARM (другие цели могут иметь оговорки, но обычно легко исправить). Например, Clang используется в производстве для создания программное обеспечение, критичное к производительности, например Chrome или Firefox.
Если вы ищете для анализа источников или инструментов преобразования источника в источник Clang, вероятно, отличное решение для вас.Clang поддерживает C ++ 11, C ++ 14 и C ++ 17, см. страницу статуса C ++ для получения дополнительной информации.

Получите и примите участие!

Начните с получения кода, его создания и играя с этим. Это покажет вам, что мы можем сделать сегодня и позволит вам испытать «Clang experience» из первых рук: надеюсь, он будет «резонировать» с вами. 🙂

Как только вы это сделаете, рассмотрите возможность получения участвует в сообществе Clang. Среди разработчиков Clang множество добровольцы с разным опытом.Если ты увлекающийся после разработки Clang подписка на список рассылки является хорошим способ узнать, как работает проект.

10+ лучших компиляторов C и C ++: как для Windows, так и для Linux

Краткое введение

Вот краткое введение в то, что мы увидим в этом посте. Сначала мы обсудим , что такое компиляторы ? Как работает ? Какие бывают типы компиляторов ?

Затем мы рассмотрим лучший компилятор для c ++ и c , доступный для Windows и Linux .Наконец, мы увидим одни из лучших онлайн-компиляторов для c ++ и c .

И завершите пост, рассмотрев короткое различие между компилятором и интерпретатором.

Что такое компилятор?

Компиляторы — это компьютерные переводчики , которые переводят язык высокого уровня на язык низкого уровня или машинный язык (001101…), чтобы машина могла понять его и выполнить за один прогон.

Компилятор также делает выходной код эффективным, который оптимизирован для времени выполнения и памяти .

Различные типы компиляторов

Однопроходные компиляторы

Он напрямую преобразует исходный код в машинный код.

Двухпроходные компиляторы

A Двухпроходный / многопроходный компилятор — это тип компилятора, который обрабатывает исходный код или абстрактное синтаксическое дерево программы несколько раз .

Как работают компиляторы?

источник: csspoint101.com

Лучшие компиляторы C ++ и C для Windows / Linux

1.

Компилятор Intel C ++

Компилятор Intel C ++ также известен как ICC , доступный как для Linux, так и для Windows . Компиляторы Intel оптимизированы для компьютерных систем, использующих процессоры, поддерживающие архитектуры Intel. Он работает как с c, так и с c ++ .

2.

Компилятор GNU

Сборник компиляторов GNU ( GCC ) — это компиляторная система, созданная проектом GNU.Первоначально он был разработан для языка C , но теперь поддерживает многие языки, такие как C ++, , Java, и т. Д. Доступен как для Windows, так и для Linux .

3.

Dev C ++

Dev-C ++ — это полнофункциональный компилятор для языка программирования C / C ++. Он использует порт Mingw для GCC (GNU Compiler Collection) как компилятор. Его также можно использовать в сочетании с Cygwin или любым другим компилятором на основе GCC. Доступно только для windows

4.

Borland C ++

Borland C ++ — это среда разработки C и C ++ для MS-DOS и Microsoft Windows . Подходит для новичков, так как им проще пользоваться.

5.

Clang

Clang предоставляет языковой интерфейс и инфраструктуру инструментов для языков семейства языков C (C, C ++, Objective C / C ++, OpenCL, CUDA) .Clang считается хорошим компилятором для создания инструмента и его повторного использования , также интегрируйтесь с другими проектами. Доступно как для Windows, так и для Linux .

6.

Компилятор Visual C ++

Microsoft Visual C ++ Compiler — хороший компилятор для разработки приложений Windows . Хотя Visual Studio предоставляет пользователю массу вариантов выбора при первом запуске. Доступен как для Windows, так и для Linux . Ключевой особенностью Visual C ++ является разработка архитектуры MFC, которая обеспечивает самые быстрые исполняемые файлы

7.

MinGW

MinGW относится к набору заголовков среды выполнения, используемых при создании системы компиляции на основе проектов GNU GCC и binutils (поддерживает как c, так и c ++ ).Ключевым преимуществом этого является , быстрый и простой , требующий библиотек DLL. Это доступно только для окон.

8.

Компилятор Tiny C

TinyCC (также известный как TCC) — это небольшой, но сверхбыстрый компилятор C. . В отличие от других компиляторов C, он должен быть самодостаточным: вам не нужен внешний ассемблер или компоновщик, потому что TCC сделает это за вас. Доступно только для c и windows .

Лучшие компиляторы C / C ++ доступны в Интернете

1.

Jdoodle.com

Jdoodle предоставляет интересный и забавный в использовании онлайн-компилятор C ++ с удивительной скоростью выполнения кода. Доступно для b oth C ++, C и других языков, таких как — Java, PHP, Python и т. Д.

2.

Заменить

Repl.it дает самый красивый l и один из лучших онлайн-компиляторов и IDE для C ++. Он поддерживает последнюю версию C ++ с некоторыми интересными функциями.

3.

Tutorialspoint.com

Он предоставляет онлайн-компиляторы для разных языков программирования. Он предоставляет множество интересных функций, таких как цветовое кодирование, создает новые проекты, загружает исходный код и т. Д.

4.

Codechef.com

Codechef предоставляет очень простой в использовании онлайн-компилятор C ++, кроме C ++, вы также можете компилировать Java и интерпретировать код Python.

5.

Codepad.org

Codepad — это онлайн-компилятор / интерпретатор и простой инструмент для совместной работы. Он поддерживает как c, так и c ++ , а также других языков.

6. Onlinegdb.com

GDB online — это онлайн-компилятор и отладчик l для C, C ++, Python, PHP, Ruby и т. Д.
Код, компиляция, запуск и отладка онлайн из любой точки мира.

Разница между компилятором и интерпретатором

КОМПИЛЯТОР Интерпретатор
1.Компилятор переводит полную исходную программу за один прогон. 1. Интерпретатор переводит исходную программу построчно.
2. Занимает на меньше времени и быстрее . 2. Он менее эффективен и медленнее.
3. Локализация ошибки затруднена. 3. Локализация ошибки проще , чем компилятор.
4. Синтаксические и семантические ошибки могут быть проверены одновременно. 4. За один раз можно проверить только синтаксическую ошибку.
5. Компилятор не обеспечивает улучшенной среды отладки. 5. Интерпретатор обеспечивает улучшенную среду отладки.
6. Компилятор используется в языках , таких как C, C ++, и т. Д. 6. Интерпретатор используется в таких языках, как Java, Python, Perl и т. Д., часто. Задаваемые вопросы по компиляторам

Что такое компилятор?

Компиляторы — это компьютерные переводчики , которые переводят язык высокого уровня на язык низкого уровня или машинный язык (001101…), чтобы машина могла понять его и выполнить за один прогон.

Различные типы компиляторов

1. однопроходных компиляторов
Он напрямую преобразует исходный код в машинный код.
2. Двухпроходные компиляторы
A Двухпроходный / многопроходный компилятор — это тип компилятора, который многократно обрабатывает исходный код или абстрактное синтаксическое дерево программы .

Какой лучший компилятор для C ++ / C в Windows 10?

Лучший компилятор для C ++ в Windows 10 — это компилятор Visual C ++ и компилятор Intel C ++.

Какой компилятор C ++ лучше всего подходит для начинающих?

Лучшими компиляторами C ++ для начинающих являются: компилятор Visual C ++ , компилятор Intel C ++ и компилятор GNU .

Что такое пример компилятора?

Несколько примеров компилятора: Dev C ++, Borland C ++, компилятор Visual C ++, компилятор Intel C ++ и GNU Compiler .

Какой лучший онлайн-компилятор для C / C ++?

Какова роль компилятора?

Основная роль компилятора заключается в преобразовании языка высокого уровня в машинный язык низкого уровня , чтобы машина могла понять и выполнить этот код.

Спасибо, что прочитали мою статью. Поделитесь с другими, если вам понравился пост, чтобы оценить мою работу, а также посмотрите другой классный пост о 10+ случаях использования javascript: вы не слышали раньше.

c ++ — Каковы практические различия между компиляторами C в Windows?

Помните аргумент, что если вы хотите, чтобы ваша веб-страница работала в разных браузерах, вам следует написать соответствующий стандартам HTML?

То же самое и с компиляторами.

На уровне языка, если ваш код компилируется без предупреждений на GCC с -std = c89 (или -std = c ++ 98 для C ++), -pedantic -Wall, плюс -Wextra, если вы чувствуете себя смелым, и пока так как вы не использовали ни одно из наиболее вопиющих расширений GNU, разрешенных -pedantic (что трудно сделать случайно), то у него есть хорошие шансы работать с большинством компиляторов C89.С ++ немного менее уверен, поскольку вы потенциально полагаетесь на то, насколько полно целевой компилятор поддерживает стандарт.

Написание правильного C89 является в некоторой степени ограничительным (без комментариев //, объявления должны предшествовать операторам в блоке, без встроенного ключевого слова, без stdint.h и, следовательно, без 64-битных типов и т. Д.), Но это не так уж плохо, когда вы к нему привыкнете. Если все, что вам нужно, это GCC и MSVC, вы можете включить некоторые языковые функции, которые, как вы знаете, есть в MSVC. В противном случае вы можете написать собственные небольшие заголовки «языковой абстракции».Например, тот, который определяет «встроенный» как «встроенный» в GCC и MSVC / C ++, но «__inline» для MSVC / C. Или MSVC stdint.h достаточно легко найти или написать.

Раньше я успешно писал переносимый код — я работал в основном над одной платформой для конкретного продукта, используя GCC. Я также написал код, предназначенный для использования на всех платформах, включая Windows XP и Mobile. Я никогда не компилировал его для этих платформ до запуска «тестовой сборки» на сервере сборки, и у меня очень редко возникали проблемы.Я думаю, что мог написать плохой код, который один или два раза вызывал предупреждение о 64-битной совместимости.

Программисты Windows, идущие другим путем, время от времени вызывали проблемы, в основном из-за того, что их компилятор был менее педантичным, чем наш, поэтому мы видели предупреждения, которых они не делали, а не то, что GCC вообще не поддерживал. Но исправление предупреждений означало, что, когда код позже использовался в системах с более примитивными компиляторами, он все еще работал.

На уровне библиотеки все намного сложнее.Если вы #include и используете Windows API через windows.h, то, очевидно, он не будет работать в Linux, и то же самое, если вы используете KDE с GCC, а затем попытаетесь скомпилировать с MSVC.

Строго говоря, это проблема платформы, а не компилятора, но это то же самое. Если вы хотите написать переносимый код, вам понадобится API абстракции ОС, такой как POSIX (или его подмножество), который поддерживают все ваши цели, и вам нужно думать о переносимости, когда вы его пишете в первую очередь. Взять код, который интенсивно использует API-интерфейсы, специфичные для Windows, и попытаться заставить его работать в GCC / linux — это, по сути, полное переписывание AFIAK.Возможно, вам будет лучше использовать WINE, чем пытаться его перекомпилировать.

Компилятор C

| Dymola — Dassault Systèmes®

Visual Studio — Бесплатные выпуски:
  • Visual Studio 2012 Express Edition (11.0)
  • Visual Studio 2013 Express для Windows Desktop Edition (12.0)
  • Visual Studio 2015 Express Edition для Windows Desktop (14.0)
  • Visual Studio 2017 Community Edition (15)
  • Visual Studio 2017 Express Edition для Windows Desktop (15) — обратите внимание, что этот компилятор поддерживает компиляцию только в 32-разрядные исполняемые файлы Windows.
  • Microsoft Build Tools 2017. Примечания:
    • Минимальный требуемый выбор для запуска Dymola:
      • VC ++ 2017 версия Самый высокий список последний номер версии инструменты
      • Поддержка C ++ / CLI
    • Установка указанного выше выбора , IDE (интегрированная среда разработки) не установлена, только функции командной строки
    • Эта установка не отображается как конкретный выбор при последующем выборе компилятора в Dymola, альтернатива для выбора такая же, как и для любых других альтернатив Visual Studio 2017.
  • Сообщество Visual Studio 2019 (16)
  • Инструменты сборки Microsoft 2019 (см. Инструкции по установке и тестированию инструментов сборки Microsoft).

Права на использование Visual Studio Community зависят от клиентского сегмента и сценариев использования; пожалуйста, проверьте на веб-сайте Microsoft (см. ссылку ниже).

Visual Studio — Профессиональные выпуски:
  • Visual Studio 2012 (11.0)
  • Visual Studio 2013 (12.0)
  • Visual Studio 2015 (14.0)
  • Visual Studio Professional 2017 (VS 15)
  • Visual Studio Enterprise 2017 (VS 15)
  • Visual Studio Professional 2019 (VS 16)
  • Visual Studio Enterprise 2019 (VS 16)

Ниже приведена ссылка для загрузки для компилятора Visual Studio.

Компилятор Intel:
  • Intel Parallel Studio XE 2016
  • Intel Parallel Studio XE 2017
  • Intel Parallel Studio XE 2018

Примечание. Компилятор Intel также требует компилятора Visual Studio и имеет некоторые ограничения; Щелкните здесь, чтобы получить более подробную информацию, и найдите ссылку для скачивания ниже.

Важно: поддержка компиляторов Intel будет прекращена в следующем выпуске.

Поддержка OPC

Обратите внимание, что поддержка OPC была удалена в версии Dymola 2021x Dymola. За альтернативными решениями обращайтесь в службу технической поддержки.

Компиляторы GCC:

Были протестированы следующие компиляторы (обычно совместимы более поздние версии):

  • 32-битный MinGW, GCC версии 5.3, 6.3, 8.2
  • 64-битный MinGW, GCC версии 5.3, 7.3, 8.1

Примечание. Компиляторы GCC имеют некоторые ограничения и требуют дополнений во время установки и т. Д. Щелкните здесь, чтобы получить дополнительные сведения, и найдите ссылку для загрузки ниже.

Установка компилятора C в Windows

Обратите внимание, что для платформы Windows компилятор C / C ++ должен быть установлен отдельно. Компилятор C можно установить до или после установки Dymola. Вы можете запускать Dymola и просматривать модели, но для перевода любой модели вы должны установить компилятор C.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *