Какие хорошие компиляторы можно использовать при изучении C ++?[закрыто]

StackOverflow https://stackoverflow.com/questions/77126

  •  09-06-2019
  •  | 
  •  

Вопрос

Каковы некоторые предложения по простым в использовании компиляторам C ++ для новичка?Предпочтительнее были бы бесплатные или с открытым исходным кодом.

Это было полезно?

Решение

GCC - хороший выбор для простых вещей.

Visual Studio Express edition - это бесплатная версия основного компилятора Windows C ++.

Если вы используете Windows, я бы использовал VS.Если вы используете Linux, вам следует использовать GCC.

* Я говорю GCC для простых вещей, потому что для более сложного проекта процесс сборки не так прост

Другие советы

G++ - это компилятор GNU C++.В большинстве дистрибутивов * nix этот пакет должен быть доступен.

Я бы рекомендовал использовать Разработчик C ++.Это небольшая и легкая среда разработки, которая использует порты mingw в качестве серверной части, что означает, что вы будете компилировать компилятор C / C ++ defacto, ссагпз

Для новичка:g++ -педантичный-ошибки -Стена

Это поможет внедрить хорошее программирование с самого начала.

gcc с -Wall (включить все предупреждения) -Werror (преобразовать предупреждения в ошибки), -pedantic (получать предупреждения за нестандартный код) и -ansi (сделать стандартным c ++ 98).

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

Я рекомендую gcc, потому что он предназначен для использования в командной строке, и вы можете компилировать простые программы и точно видеть, что происходит:

g++ -o myprogram myprogram.cc
ls -l myprogram

Один файл введен, два файла выведены.Что касается Visual C ++, большинство людей используют его с графическим интерфейсом, где вам нужно настроить проект, а IDE генерирует кучу файлов, которые могут помешать, если вы только начинаете.

Если вы используете Windows, вы будете выбирать между MinGW или Cygwin.Настройка Cygwin требует небольшой работы, потому что вам нужно выбрать, какие пакеты устанавливать, но у меня нет опыта работы с MinGW.

Вы всегда можете использовать компилятор C ++ из коллекции компиляторов Gnu (GCC).Он доступен практически для любой системы Unix на земле, BSD, Mac OS, Linux и Windows (через Cygwin или mingw).

Ряд IDE поддерживают компилятор GCC C ++, напримерKDevelop работает под Linux / KDE или Dev-CPP, как упоминалось в других сообщениях.

Microsoft Visual Studio Express Edition их компилятора C ++ хороша

Кодовые блоки это очень хорошая IDE, которую можно использовать помимо многих других компиляторов CL.EXE (из Visual Studio) и gcc.Он также поставляется в версии с включенным gcc.

Visual Studio Express Edition также является хорошим выбором (с Platform SDK, если вы будете разрабатывать приложение, вызывающее функции winapi).

Eclipse хорош для Mac или собственного бесплатного Xcode от Apple, который можно загрузить с их сайта разработки.

Одна из причин использования g ++ или MinGW / Cygwin, которая еще не упоминалась, заключается в том, что запуск и IDE скроют часть происходящего.Например, в будущем будет невероятно полезно понять различия между компиляцией и компоновкой.Изучите это и поймите с самого начала, и вы даже не будете знать, что позже вам следует благодарить себя.

-Макс

I say GCC for simple things because for a more complicated project the build process isn't so easy

Верно, но я не думаю, что понимание процесса сборки большого проекта ортогонально пониманию самого проекта.На моем последнем месте работы у них был огромный проект, который нужно было создать для целевой платформы (LynxOS), а также среды эмуляции (WinXP).Они решили объединить все в один .VCP-файл для Windows и собрать его как один большой исполняемый файл.Изначально это было около 50 отдельных процессов, поэтому они написали makefile, в котором были перечислены все 3000 исходных файлов, скомпилировали их все в одну большую библиотеку, а затем связали отдельные main.cpp 's для каждого исполняемого файла с библиотекой all-in-one создать 50 исполняемых файлов (которые делили, возможно, 10% своего кода с другими исполняемыми файлами).В результате ни один разработчик не имел ни малейшего представления о том, какой код зависит от любого другого кода.В результате они никогда не утруждали себя попытками определить чистые интерфейсы между чем бы то ни было, потому что все было легко доступно из повсюду.Иерархическая система сборки могла бы помочь навести какой-то порядок в неорганизованном в противном случае репозитории исходного кода.

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

Visual Studio в командной строке ведет себя точно так же, как GCC.Просто откройте окно командной строки Visual Studio и:

c:\temp> cl /nologo /EHsc /W4 foo.cpp
c:\temp> dir /b foo.*
foo.cpp  <-- your source file
foo.obj  <-- result of compiling the cpp file
foo.pdb  <-- debugging symbols (friendly names for debugging)
foo.exe  <-- result of linking the obj with libraries

Я согласен с Юлианом Щербаною: Code::Blocks - очень хорошее решение, можно использовать как из Linux (он будет использовать g ++ / gcc), так и из Windows (он будет использовать либо компилятор MS, либо gcc).

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top