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





Microsoft Visual Studio Express Edition их компилятора C++ хорош
GCC - хороший выбор для простых вещей.
Visual Studio Express edition - это бесплатная версия основного компилятора C++ для Windows.
Если вы работаете в Windows, я бы использовал VS. Если вы используете Linux, вам следует использовать GCC.
* Я говорю GCC для простых вещей, потому что для более сложного проекта процесс сборки не так прост
Я бы рекомендовал использовать Разработчик C++. Это небольшая и легкая среда IDE, которая использует порты mingw в качестве бэкэнда, что означает, что вы будете компилировать компилятор C / C++ де-факто, gcc.
используйте эту ссылку для разработчиков C++ вместо sourceforge.net/projects/dev-cpp
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++.
Что использовать в Linux, если проект сложный?