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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 379
14
Перейти к ответу Данный вопрос помечен как решенный

Ответы 14

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

Ответ принят как подходящий

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

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

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

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

Что использовать в Linux, если проект сложный?

tshepang 25.05.2012 13:52

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

используйте эту ссылку для разработчиков C++ вместо sourceforge.net/projects/dev-cpp

Alex Nolasco 01.08.2010 05:34

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

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

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

Для новичка: g ++ --pedantic-errors -Wall

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

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

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

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

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

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

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

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

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

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

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

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

-Максимум

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

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

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

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

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

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

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