Какое программное обеспечение необходимо для начала разработки c / c ++ в Windows, которое будет работать без дополнительных инструментов, таких как cygwin или .Net?

Я намереваюсь писать простые программы на c/c++, которые будут запускаться в консоли. Я буду писать код в Notepad ++, поэтому мне не нужна IDE. Мне нужен компилятор, который будет создавать автономный EXE-файл, который будет работать в любой 2000/XP/Vista/7 системе без необходимости установки VC9/cygwin/MinGW/.Net или других дополнительных библиотек.

Насколько я понимаю, GCC работает в Windows через cygwin, поэтому любое созданное им приложение также требует cygwin1.dll для запуска, верно?


person rsk82    schedule 18.12.2011    source источник
comment
возможный дубликат компилятора C для Windows?   -  person MK.    schedule 18.12.2011
comment
Не смешивайте C и C ++. Это разные языки с разными идиомами и разными стандартами ISO. Тот факт, что C ++ поддерживает подмножество C, не делает его C / C ++.   -  person Sebastian Mach    schedule 19.12.2011


Ответы (6)


Ваши основные варианты - MSVC и mingw.

  • Если вы хотите написать код C, избегайте MSVC, у которого нет настоящего компилятора C, а просто поддельная оболочка вокруг его компилятора C ++. Да, и поддерживаемый диалект близок к C89.
  • Если вы хотите писать на C ++, то MSVC подойдет, а современные версии стали довольно хорошими и достаточно совместимыми со стандартами.
  • Если вы хотите написать как C, так и C ++ в соответствии с вашим вопросом, то, вероятно, лучше всего подойдет mingw.

Обратите внимание, что mingw является собственным портом компиляторов GNU для Windows и не требует cygwin. 32-разрядная версия mingw проста в установке. Если вам нужно создать 64-битные исполняемые файлы, то установка 64-битной версии mingw требует немного больше усилий. Точно так же, если вам нужен бесплатный компилятор MS в 64-битном режиме, вам придется проделать некоторую грязную работу, чтобы его установить.

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

person David Heffernan    schedule 18.12.2011

Если вы установите Visual Studio Express (даже если вы не собираетесь его использовать), вы получите цепочку инструментов для создания кода C ++.

Если вы нацеливаетесь на собственный код, он будет работать в любых окнах ... хотя вы, возможно, захотите взглянуть на что-то вроде WTL, чтобы облегчить работу с окнами.

Кроме того, согласно комментариям, Platform SDK предоставляет полную цепочку инструментов компилятора. Еще одна хорошая вещь в SDK - это множество примеров кода для всех аспектов Windows API.

person Keith Nicholas    schedule 18.12.2011
comment
Платформа SDK также включает в себя компилятор и имеет 64-битный компилятор, в отличие от Express. - person David Heffernan; 19.12.2011
comment
@DavidHeffernan: что потенциально более важно, IIRC версия Windows SDK включает оптимизирующий компилятор, в отличие от express. - person Ben Voigt; 19.12.2011
comment
@ben интересно, я не знал что - person David Heffernan; 19.12.2011
comment
@ Бен, ты уверен в этом? Я думал, что компиляторы были полными компиляторами? - person Keith Nicholas; 19.12.2011
comment
@KeithNicholas: Это может варьироваться от версии к версии, но я помню, что некоторые версии Express не включают оптимизацию. - person Ben Voigt; 19.12.2011
comment
Хорошо, версия, в которой это вызывало беспокойство, была Microsoft Visual C ++ .NET Standard Edition 2003. Больше не должно быть проблемой. - person Ben Voigt; 19.12.2011

Компилятор Mingw gcc создает собственные двоичные файлы, которые используют только msvcrt для среды выполнения C. Так что это удовлетворяет вашим требованиям. Вы можете выбрать Visual Studio Express, но для этого потребуется, чтобы вы отправили версию msvcrt, используемую с вашим приложением.

person patthoyts    schedule 18.12.2011
comment
При статической компоновке используемые функции встраиваются в двоичный файл приложения, и доставка msvcrt НЕ требуется. - person Ben Voigt; 18.12.2011
comment
@Ben Я подозреваю, что patthoyts имеет в виду msvcrt.dll, который является системным компонентом и поставляется с Windows. - person David Heffernan; 19.12.2011
comment
@David: Я обращаюсь к третьему предложению, в котором упоминается, что вам нужно отправить версию msvcrt, и оно неточно. - person Ben Voigt; 19.12.2011

Open Watcom C / C ++ может быть хорошей идеей для начала, но, насколько я понимаю, не работает на сегодняшний день с функциями C ++ (в первую очередь, кажется, в STL), и я даже не говорю о C ++ 11.

person Alexey Frunze    schedule 18.12.2011

Компилятор Visual C ++ (включенный в Visual C ++ Express, Visual Studio и Windows SDK) может создавать двоичные файлы, для которых не требуются какие-либо вспомогательные библиотеки, кроме самой ОС. Используйте статическое связывание. Однако последние версии больше не поддерживают версии Windows до XP (есть обходные пути, но они не чисты и не рекомендуются для нетривиальных приложений, лучше всего использовать обходные пути при написании программы установки, которая проверяет предварительные требования, поэтому она может выдавать содержательные сообщения об ошибках вместо сбоя).

Компилятор MINGW gcc также может создавать автономные двоичные файлы (зависящие только от ОС).

person Ben Voigt    schedule 18.12.2011
comment
Вы по-прежнему можете скачать более старые версии VS express. Я сделал это с VS2008 пару дней назад. - person David Heffernan; 19.12.2011

Я использовал версию gcc с оболочкой MinGW с сайта Equation.com, которая кажется родной. Просто установите этот единственный файл и используйте.

person pmg    schedule 18.12.2011