2012-06-07 3 views
7

Думал, что я напишу что-нибудь на C++ вместо некоторых интерпретируемых языков (потому что мне нужна производительность для чего-то простого) и обошел различные инструменты.Простой компилятор C++ для Windows

Сначала я нашел cygwin, потому что у него был g ++, но для запуска exe требуется cygwin.dll.

Затем я попробовал mingw, но мне кажется, что мне нужно включить некоторые DLL с дистрибутивами, такими как libgcc и libgstd, или что-то, что раздувает исполняемый файл примерно до MB (мне не нужно, чтобы столько байтов выполнялось просто file I/O)

Затем я посмотрел Visual C++ 2010, так как я уже установил его, но похоже, что мне нужно установить 2008 только для использования .net framework 3.5. Ну, я бы не прочь использовать 4.0, но я думаю, что есть много людей, которые не имеют 4.0 на своих машинах Windows, и было бы неудобством читать файл.

Что я могу использовать, это позволит мне обойти небольшие exe (например, несколько килобайт), которые выполняют простые одноразовые вещи, которые будут работать на большинстве оконных машин? (поскольку это относится только к пользователям Windows)

Или мне просто нужно использовать C и идти с gcc для mingw?

+4

Что такое версия VC++ связана с версией .NET Framework, если вы пишете собственный код? – ildjarn

+0

Вы можете написать стандартный C или C++ с визуальной студией, цель вашего проекта не должна быть платформой .NET. –

+1

VC++ 2010 будет в порядке. Когда вы пишете C++, вы вообще не используете .NET (любая версия). –

ответ

7

По крайней мере, некоторые из очевидных кандидатов:

VC++: По состоянию на VC++ 2010 начинает поддерживать некоторые функции 11 C++. VC++ 11 (в настоящее время в бета-тестировании) добавляет еще несколько. Имеет довольно приличное генерирование кода, отладчик, о котором многие думают, это лучшее, что вы можете получить, и IDE, которая производит довольно смешанные обзоры. Многие из тех, кто использовал их, считают, что старые поколения IDE (VC++ 5 и 6) лучше, по крайней мере, некоторым образом, но с тех пор компилятор так сильно улучшился, что более старые IDE действительно не подходят большинству людей (за исключением поддержки древнего кода).

MinGW: текущий пакет STL имеет gcc 4.7.0, который (по крайней мере, возможно) имеет несколько лучшую поддержку C++ 11, чем VC++. Он включает в себя довольно много портированных инструментов Unix/Linux, но в основном это среда с командной строкой. Если вы хотите что-то вроде IDE, вам придется установить/настроить его отдельно.

Cygwin: Это также основано на gcc, но вместо того, чтобы портировать компилятор в Windows, они портировали Linux на Windows и запускали компилятор на портированном Linux. Очевидно, я преувеличиваю (немного), но не очень много - Cygwin в основном запускает код Linux/Unix для Windows с минимальными изменениями. Инструменты, которые они поставляют, также подходят для этого - он делает все возможное, чтобы быть Unix-подобной средой, которая работает под ядром Windows. Это определенно не было бы моим первым выбором для любой новой разработки.

Qt Creator/SDK: это еще одна упаковка gcc, но с IDE. Если вы хотите написать код с помощью Qt, это может быть ваш первый выбор. В противном случае я бы , вероятно, избежал его - хотя он, вероятно, может работать нормально, он написан, предполагая, что Qt используется по умолчанию.

Eclipse/CDT: Вы можете найти это, упакованное вместе с копией g ++. По крайней мере, в прошлый раз, когда я пробовал, мне нужно было немного поработать над конфигурацией, прежде чем я мог даже заставить ее правильно компилировать. Если вы используете Eclipse для других целей, получение C++ возможно стоит. В противном случае я лично его избегу.

C++ Builder: В дни Borland это был самый большой претендент на доминирование Microsoft. Кажется, Эмбаркадеро пытается снова вернуть его в мейнстрим. Акцент здесь кажется, чтобы быть намного больше на IDE, GUI toolkit и т. Д., Чем собственно компилятор. Сам компилятор кажется немного отстающим от gcc и/или VC++. Стоимость стартера стоит 150 долларов США и ограничивает объем продаж продукции до 1000 долларов, после чего вам нужно потратить большую часть ваших 1000 долларов на обновление до версии Professional.

Clang: Самый недавно начатый из главных компиляторов, но действительно работающий, будучи одним из лучших. Имеет некоторые из лучших диагностических возможностей любого компилятора. Цели LLVM, которые дают ему множество инструментов для анализа во время выполнения и т. Д. Его главный корпоративный спонсор - Apple, хотя, хотя, несмотря на то, что он хорошо работает из коробки на OS/X (и теперь является компилятором по умолчанию) в Windows, вы уже являетесь лотом. AFAIK, вы нужно, чтобы какой-то другой компилятор был установлен и работал (и действительно знал, как его использовать), чтобы установить его вообще. В Windows это немного похоже на покупку мышечной машины из мусорного двора. С достаточной работой вы можете оказаться в крутейшем автомобиле в городе, но в Windows это скорее проект, чем инструмент.

Несколько больше вообще избегать:

  1. Любая версия VC++, прежде чем о 2008 Simply уступает реализации C++.
  2. Любая версия g ++ перед 4.x. Опять же, более низкая реализация C++.
  3. djgpp: в значительной степени самое худшее. Это действительно нацелено на MS-DOS с (обычным) расширителем DOS. Древняя версия gcc завершает ужас.
  4. OpenWatcom: также в первую очередь предназначен для MS-DOS. Он использует расширитель DOS, который лучше, чем djgpp, но это в значительной степени проклятие с слабой похвалой. Компилятор на самом деле даже не очень близок к совместимости с C++ 98; Обновления на C++ 11 поражают меня, так как вряд ли скоро придут (если когда-либо).
  5. Цифровой Марс: Уолтер Брайт теперь работает в основном на своем собственном языке D. Хотя компилятор C++ по-прежнему доступен, компиляция C++ довольно устарела.

Резюме: если вы хотите IDE, VC++ Express - это четкий выбор. Если вы заботитесь о последних возможностях C++ 11 и не против работать в командной строке, MinGW, вероятно, является лучшим выбором. У других определенно есть ниши, но я считаю, что большинство из них уступает, если ваша цель в первую очередь заключается в новом, писать переносимый C++.

+0

Приятно видеть список вариантов на выбор. – MxyL

-1

Для компилятора простого C/C++ на окнах это трудно превзойти DJGPP: http://www.delorie.com/djgpp/

+6

Не быть противным, но я бы сказал скорее наоборот: почти * все * еще лучше. –

+0

Его страница говорит DOS. – Dani

+2

Я уверен, что вопрос означал * просто * как в чувствах 5 или 9, а не в смысле 4. http://www.merriam-webster.com/dictionary/simple –

5

настоящее время я использую дистрибутив MinGW Стефана Lavavej в http://nuwen.net/mingw.html

Я использую его для создания EXE-файлов используя gcc.

Вы просто должны быть довольны коллекцией инструментов, которые он включил.

+0

Я только начал использовать это слишком недавно. Он отлично работает и является единственным дистрибутивом GCC, который я нашел до сих пор, который работает с Codeblocks, запущенным с флеш-накопителя. – chris

-1

IMHO: Только способ иметь EXE, который составляет несколько килобайт в настоящее время, это сделать с картой .net, скажем, 2.0, чтобы быть максимально совместимым.

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

+2

Но если вы используете .NET (любая версия), вы больше не пишете C++. Самое близкое, что вы можете получить, это C++/CLI, который 1) Microsoft рекомендует * только * для взаимодействия, а 2) на самом деле не C++. –

+0

Да, но для небольшого приложения я бы рекомендовал C#. OP может получить exe размером 10kb, и почти каждый компьютер Windows имеет .net 2.0. Я бы не рекомендовал C++/cli даже худшим врагам, хотя :) –

+0

Что я могу использовать для сборки .net 2.0? Microsoft имеет 2.0 SDK, но это большая загрузка (350+ МБ), и если есть что-то еще, что я могу использовать, это было бы полезно. – MxyL

1

Затем я посмотрел на Visual C++ 2010, так как я уже был он установлен, но , похоже, мне нужно установить 2008 только использовать рамки .net 3.5

Мм, C++ и .NET есть ничего общего делать друг с другом.

Visual Studio C++ компилятор для Windows. Большинство из них в лучшем случае имеют плохую поддержку Windows.

+1

+1 для комментариев с «плохой поддержкой». Потому что это действительно так. –

+1

Я слышал, что C++ Builder имеет хорошую поддержку Windows. –

+0

C++ builder, все еще жив? –

1

Я знаю, что вы задаете вопрос: «Позвольте мне пройти мимо маленьких exe», но если вам интересно (например, я), иногда просто запуская код на C++ и не создавая exe, вы можете дать Compile and Execute C++ Online попытку ,

+0

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

Смежные вопросы