2011-12-18 1 views
0

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

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

+1

Возможный дубликат [C-компилятор для Windows?] (Http://stackoverflow.com/questions/116368/c-compiler-for-windows) –

+1

Не смешивайте C и C++. Это разные языки с разными идиомами и различными стандартами ИСО. Тот факт, что C++ поддерживает подмножество C, не делает его C/C++. –

ответ

4

Ваши основные параметры: MSVC и mingw.

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

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

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

3

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

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

Кроме того, согласно комментариям, Platform SDK предоставляет полный набор инструментов компилятора. Другая хорошая вещь о SDK - это много примеров кода для всех аспектов API окон.

+0

Платформа SDK также включает компилятор и имеет 64-битный компилятор, в отличие от express. –

+0

@ DavidHeffernan: Потенциально более важно, IIRC версия Windows SDK включает оптимизирующий компилятор, в отличие от express. –

+0

@ben интересно, я не знал, что –

1

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

1

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

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

+0

Вы все еще можете загрузить более старые версии VS express. Я сделал это с VS2008 пару дней назад. –

2

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

+1

Со статической привязкой используемые функции встроены в двоичный код приложения, а отправка msvcrt НЕ требуется. –

+1

@Ben Я подозреваю, что patthoyts ссылается на msvcrt.dll, который является системным компонентом и поставляется с Windows. –

+0

@David: Я обращаюсь к третьему предложению, в котором упоминается «требует от вас отправить версию msvcrt» и является неточным. –

1

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