Онлайн-компиляторы C++
Онлайн-компиляторы могут быть полезными инструментами для быстрой компиляции фрагмента кода без необходимости установки соответствующего компилятора на наш компьютер. Они могут быть особенно полезны для игры с новейшими языковыми функциями, для обмена фрагментами кода в Интернете или для сравнения различных компиляторов.
Список онлайн-компиляторов C++
Следующий список содержит информацию о доступных онлайн-компиляторах и их наиболее важных функциях. В зависимости от версий используемых компиляторов они поддерживают различные версии стандарта C++. Более подробные списки функций смотрите на этой странице: https://en.cppreference.com/w/cpp/compiler_support. Поскольку C++17 еще не полностью стандартизирован, он помечен звездочкой, где (большинство) ожидаемых функций C++17 доступны.
Помимо простой компиляции, большинство онлайн-компиляторов также выполняют скомпилированную программу. Возможности параметризации компиляции с помощью флагов компилятора, передачи параметров командной строки/времени выполнения исполняемой программе и предоставления входных данных для стандартного ввода варьируются между различными компиляторами.
Wandbox
URL | http://melpon.org/wandbox |
Компиляторы | GCC 4.4.7 .. 8.0.0 (HEAD) Clang 3.1 .. 5.0.0 (HEAD) zapcc 1.0.1 |
C++ версия | C++17* |
Флаги компилятора | выпадающий выбор + свободный текст |
Параметры времени выполнения | да |
Stdin | да |
Wandbox предоставляет практически все функции, которые вы хотели бы получить от типичного онлайн-компилятора, включая поддержку нескольких файлов и различных привязок клавиш редактора.
Помимо стандартной библиотеки, он включает в себя несколько библиотек, включая Boost (до 1.64), Sprout и MessagePack. Скомпилированные программы работают в среде песочницы, которая позволяет выполнять файловый ввод-вывод. Версии моментальных снимков GCC и Clang, которые предоставляются, позволяют играть с последними функциями C++17.
В последние месяцы я широко использовал Wandbox, особенно для проверки образцов кода из книги C++17, которую я имел удовольствие просмотреть. Поскольку у него есть ГОЛОВНЫЕ версии как Clang, так и GCC, почти все функции C++17, которые я тестировал, были скомпилированы. Поэтому Wandbox в настоящее время является моим онлайн-компилятором, когда я хочу выполнить скомпилированную программу.
CompilerExplorer(Godbolt)
URL | http://godbolt.org |
Компиляторы | GCC 4.4.7 .. 8.0.0 (snapshot) Clang 3.0 .. 5.0.0 (trunk) MSVC 19/2017 (x86, x64) icc 13, 16, 17 zapcc 190308 PowerPC gcc 4.8, PowerPC 64 6.3.0 MSP430 gcc4.5.3 .. 6.2.1 MIPS gcc 5.4 (32/64 бит, el) elcc 0.1.33, 0.1.34 AVR gcc 4.5.4, 4.6.4 ARM64 gcc 5.4 ARM gcc4.5.4 .. 5.4.1 ARM CL 2017 RTW
|
C++ версия | C++17* |
Флаги компилятора | свободный текст |
Параметры времени выполнения | N/A |
Stdin | N/A |
CompilerExplorer-это IDE типа compile-as-you-type с уникальной функцией, поскольку она представляет сборку, созданную компиляторами. Полученный ассемблер можно сопоставить по цвету с исходным кодом C++. Он поддерживает использование разных источников и нескольких компиляторов одновременно, поэтому мы можем сравнить сборку, произведенную разными кодами и/или разными компиляторами, флагами оптимизации и т. Д.
Проводник компилятора можно найти на GitHub и использовать локально. Я постоянно поражаюсь этому инструменту и его простоте использования. Почти мгновенная компиляция, пока вы печатаете, дает немедленную обратную связь, которую вы обычно получаете только от больших IDE.
В последнее время я часто использовал CompilerExplorer, чтобы поиграть с вычислениями времени компиляции, а также воспроизвести и уменьшить одну или две ошибки компилятора. Неудивительно, что в определенных кругах стал употребляться термин “богоборчество какого-то кода”.
Coliru
URL | http://coliru.stacked-crooked.com |
Компиляторы | GCC 4.6 .. 7.1 Clang 3.8 |
C++ версия | C++17* |
Флаги компилятора | свободный текст |
Параметры времени выполнения | свободный текст |
Stdin | vialinuxshellpipe |
Coliru предоставляет редактор и свободно редактируемую командную строку оболочки Linux, что делает ее относительно мощной. Например, вы можете сравнить выходные данные как Clang, так и GCC, выдав команды для компиляции и выполнения для обоих компиляторов. Редактирование нескольких файлов одновременно не поддерживается, но поскольку общий код сохраняется в архиве, вы можете использовать его для подготовки нескольких файлов (пример см. в разделе Часто задаваемые вопросы). Также можно загрузить, например, Gist через curl перед компиляцией.
Coliru предоставляет публичный API, поэтому его можно, например, интегрировать в веб-сайты cppreference.com, который использует Coliru для своих запускаемых примеров. Непосредственно после WandboxColiru-это другой компилятор, который я использую для выполнения кода C++ онлайн.
Немного менее современные компиляторы и неудобный способ работы с несколькими файлами, если они вам нужны, делают его хуже Wandbox, на мой взгляд. Однако, если эти два пункта не являются для вас проблемой, то бесплатная параметризация с помощью команд оболочки является большим плюсом.
Rextester
URL | http://melpon.org/wandbox |
Компиляторы | GCC 4.4.7 .. 8.0.0 (HEAD) Clang 3.1 .. 5.0.0 (HEAD) zapcc 1.0.1 |
C++ версия | C++14 |
Флаги компилятора | выпадающий выбор + свободный текст |
Параметры времени выполнения | да |
Stdin | да |
Rextester-это стандартная онлайн-среда IDE, которая позволяет редактировать, компилировать, выполнять и совместно использовать отдельные файлы C++. В качестве отличительной особенности он позволяет создавать сеансы редактирования в реальном времени, чтобы несколько человек могли редактировать один и тот же источник одновременно и видеть правки друг друга в режиме реального времени.
Ideone
URL | https://ideone.com/ |
Компиляторы | GCC 6.3.0 |
C++ версия | C++14 |
Флаги компилятора | fixed |
Параметры времени выполнения | none |
Stdin | yes |
Ideone-это стандартная онлайн-среда IDE, которая позволяет редактировать, компилировать, выполнять и совместно использовать отдельные файлы C++.
Компилятор Visual C++ Онлайн
URL | http://webcompiler.cloudapp.net/ |
Компиляторы | MSVC 19/2017 (x86) |
C++ версия | C++14 |
Флаги компилятора | уменьшенный набор |
Параметры времени выполнения | да |
Stdin | нет |
Витрина Microsoft для своего самого современного компилятора. Он позволяет компиляцию одного файла, запуск исполняемого файла после компиляции является необязательным. Обновление: Этот онлайн-компилятор, похоже, уже некоторое время находится в автономном режиме.
C++ Shell
URL | http://cpp.sh/ |
Компиляторы | GCC 4.9.2 |
C++ версия | C++11 |
Флаги компилятора | уменьшенный набор |
Параметры времени выполнения | да |
Stdin | статический или интерактивный |
Еще одна IDE для компиляции одного файла, но с редкой функцией интерактивного ввода stdin. Веб — приложение, кажется, иногда зависает во время компиляции или выполнения.
TutorialspointCodingGround
URL | https://www.tutorialspoint.com/compile_cpp11_online.php |
Компиляторы | GCC 4.8.5 |
C++ версия | C++11 |
Флаги компилятора | да |
Параметры времени выполнения | нет |
Stdin | да |
Онлайн-IDE с несколькими файлами. Все веб-приложение иногда кажется вялым, я не мог зарегистрироваться, чтобы попробовать функции, требующие входа в учетную запись, такие как сохранение или загрузка целых проектов (сломанная ссылка/не отвечающее веб-приложение).
Codepad
URL | http://codepad.org/ |
Компиляторы | GCC 4.1.2 |
C++ версия | C++03 |
Флаги компилятора | уменьшенный набор |
Параметры времени выполнения | нет |
Stdin | нет |
Codepad может быть неинтуитивным – вставка нового кода на месте ранее вставленного кода приведет к возврату к исходному коду. Код будет скомпилирован и выполнен как есть без какой-либо возможности дальнейшей его параметризации.
LoopPerfect C++ Fiddle
URL | http://fiddle.jyt.io/
|
Компиляторы | неизвестно |
C++ версия | неизвестно |
Флаги компилятора | N/A |
Параметры времени выполнения | N/A |
Stdin | N/A |
C++ Fiddle утверждает, что является интерактивным интерпретатором/терминалом C++, но, похоже, сломан, или интерфейс настолько неочевиден, что его следует считать сломанным.
Лучшие компиляторы C++ и C для Windows/Linux
Компилятор Intel C++
Intel C++ Compiler также известен как ICC, доступный как для Linux, так и для Windows. Компиляторы Intel оптимизированы для компьютерных систем, использующих процессоры, поддерживающие архитектуру Intel. Он работает как с c, так и с c++.Скачать данный компилятор можно по ссылке: https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html
Компилятор GNU
GNU CompilerCollection (GCC) — это компиляторная система, созданная проектом GNU. Первоначально он был разработан для языка C, но теперь поддерживает многие языки, такие как — C++, Java и т. д. Доступно как для Windows, так и для Linux. Скачать данный компилятор можно по ссылке: https://gcc.gnu.org/
Dev C++
Dev-C++-это полнофункциональный компилятор для языка программирования C/C++. Он использует порт Mingw GCC (GNU CompilerCollection) в качестве компилятора. Он также может быть использован в сочетании с Cygwin или любым другим компилятором на основе GCC. Доступно только для Windows. Скачать данный компилятор можно по ссылке: https://www.bloodshed.net/
Borland C++
Borland C++ — это IDE C и C++ для MS-DOS и MicrosoftWindows. Он хорош для начинающих, так как проще в использовании.Скачать данный компилятор можно по ссылке: https://borland-c.software.informer.com/5.5/
Clang
Clang предоставляет языковую интерфейсную и инструментальную инфраструктуру для языков семейства C (C, C++, Objective C/C++, OpenCL, CUDA).Clang считается хорошим компилятором для создания инструмента и повторного использования, а также интеграции с другими проектами. Доступно как для Windows, так и для Linux.Скачать данный компилятор можно по ссылке: https://clang.llvm.org/
Компилятор Visual C++
MicrosoftVisual C++ Compiler-это хороший компилятор для разработки приложений Windows. VisualStudio предоставляет пользователю массу вариантов выбора при первом запуске. Доступно как для Windows, так и для Linux. Ключевой особенностью Visual C++ является разработка архитектуры MFC, которая обеспечивает самые быстрые исполняемые файлы. Скачать данный компилятор можно по ссылке: https://visualstudio.microsoft.com/ru/vs/features/cplusplus/
MinGW
MinGW относится к набору заголовков среды выполнения, используемых при построении компиляторной системы на основе проектов GNU GCC и binutils(поддерживает как c, так и c++). Ключевое преимущество его заключается в том, что он быстр и прост и требует наличия DLL-библиотек. Это доступно только для Windows. Скачать данный компилятор можно по ссылке: http://www.mingw.org/wiki/MinGW
Tiny C Compiler
TinyCC (он же TCC) — это небольшой, но сверхбыстрый компилятор языка Си. В отличие от других компиляторов C, он предназначен для самостоятельной работы: вам не нужен внешний ассемблер или компоновщик, потому что TCC делает это за вас. Доступно только для c и windows.Скачать данный компилятор можно по ссылке: https://bellard.org/tcc/tcc-doc.html