Обучение С++ без IDE

Недавно я начал изучать С++ и полностью запутался с выбором IDE и компиляторов там. Я компетентен с интерпретируемыми языками и, как и простота использования любого IDE или текстового редактора, а затем запускаю интерпретатор из командной строки. Все работает так, как я ожидаю, независимо от используемой IDE, потому что каждый раз я использую один и тот же интерпретатор.

Теперь, когда я начал изучать С++, я ошеломлен выбором разных компиляторов и, что более важно, их различиями. Кажется, что для меня все будет проще (не обязательно проще), если во время обучения я использую текстовый редактор и компилятор, который я запускаю из командной строки. У меня есть общее представление о том, как работают компиляция и компоновка, и я понимаю роль файлов заголовков.

Во-первых, существуют ли какие-либо книги или веб-сайты, которые обучают С++ из этого подхода? (IDE-менее) Многие книги пытаются указать различия между IDE и компиляторами, выбирая два и сравнивая их, что меня смущает.

Во-вторых, как мне настроить рабочий процесс? (Игнорируйте выбор текстового редактора, я говорю о компиляторах, линкерах и т.д.). Я изо всех сил пытаюсь понять, какие различия существуют у разных компиляторов, и поэтому, пожалуйста, помните об этом при ответе. Похоже, что самыми популярными компиляторами являются g++ и CL. Аналогичный вопрос, но меня больше интересует, почему некоторые программы будут работать с некоторыми компиляторами, а не с другими: Компилятор С++ для Windows без IDE?

Дополнительная информация: Я разрабатываю Windows и из того, что я понимаю, кажется, что существует "чистый" С++, а затем С++, который каким-то образом связан с окнами, является ли этот Visual С++? Я хотел бы написать программы, которые используют функции Windows, но я хочу знать, когда я использую функции Windows и когда я пишу код, который будет работать на любой платформе.

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

Ответы

Ответ 1

Во-первых, существуют ли какие-либо книги или веб-сайты, которые обучают С++ из этого подхода? (IDE-менее)

Да, определенно. Книга Stroustrup уже упоминалась. Для изучения С++ я бы также рекомендовал две другие книги: если вам нравятся подробные объяснения и не уклоняйтесь от 1000 страниц, посмотрите Lippman et al. Если вам нравится короткое введение и не бойтесь крутой кривой обучения, посмотрите Koenig/Moo. Оба отличные книги. (BTW, хорошее место для поиска хороших книг всегда было в разделе обзора книги на ACCU.)

Что касается той цепочки инструментов, которую вы хотите использовать: если вы предпочитаете автономный редактор и вызывать компилятор из командной строки, вы можете сделать это с помощью GCC или VC. Преимущество такого подхода состоит в том, что он вряд ли заманит вас в использование чего-то проприетарного (например, С++/CLI). Если вы хотите попробовать IDE, VC Express в порядке, как только вы закончите создание нового проекта на С++. Конечно, количество вариантов, которые вы можете настроить для нового проекта, может быть очень подавляющим. Но, с другой стороны, вы получаете такие вещи, как интегрированный отладчик. Обратите внимание, что есть и другие интегрированные решения. Самым зрелым и заметным, вероятно, является затмение.

Изменить: Если вы не против тратить немного денег, посмотрите Comeau. Это не бесплатно, но это тоже не дорого, и обычно это считается наиболее стандартным компилятором С++ и имеет отличные сообщения об ошибках. (Вы можете протестировать его на на веб-сайте.) Обратите внимание, что он испускает код C. Это означает, что у вас должен быть другой компилятор для создания исполняемой программы. Но GCC и VC Express будут делать, поэтому нет никакой другой стоимости. (Обратите внимание, что с помощью VC вы получите реализацию Dinkumware std lib, которая также считается очень хорошей.)

Ответ 2

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

Ответ 3

Во-первых, существуют ли какие-либо книги или веб-сайты, которые обучают С++ из этого подхода? (IDE-менее)

Начните с чтения Язык программирования С++. Написанная Бьярном Страуступом, создателем С++, это всемирно известная и широко читаемая книга на С++.

Посмотрите также на Программирование - принципы и практика с использованием С++. Это введение в программирование для людей, которые никогда не программировались раньше. Это также будет полезно для людей, которые запрограммировали немного и хотят улучшить свой стиль и технику - или просто изучить современный С++.

Ответ 4

Я разрабатываю Windows и из я понимаю, кажется, что там это "чистый" С++, а затем С++, который как-то связано с окнами, это Visual С++? Я хотел бы написать программы, использующие Windows но я хочу знать, когда я используя функции Windows, и когда я код, который будет работать на любом платформы.

MS Visual С++ 2008 Express - это бесплатная среда IDE, предназначенная для таких людей, как вы, она доступна при загрузке с Microsoft, я рекомендую вам попробовать.

Ответ 5

Visual С++ - это имя пакета программ IDE. При установке он устанавливает много вещей, включая компилятор cl.exe, который может компилироваться в зависимости от настроек, написанных на языке программирования C, С++ или С++/CLI (для .NET Framework).

Вы можете использовать компилятор в командной строке без IDE (например), выбрав "Пуск" > "Программы" > "Microsoft Visual Studio X" > "Инструменты Visual Studio" > "Командная строка Visual Studio X". Это выполнит script, который устанавливает различные параметры среды, необходимые для компиляции программ, прежде чем дать вам командную строку.

Ответ 6

В Windows я бы рекомендовал вам Visual Studio Express - он бесплатный и широко распространен программистами на С++ на платформе Windows.

Поскольку вы начинаете изучать язык, не утруждайте себя различиями, преимуществами/недостатками компиляторов и IDE - оставьте его, когда вы будете лучше владеть языком и будете заниматься написанием реальной программы.

Ответ 7

Я действительно предлагаю подход IDE, Microsoft Visual С++ Express Edition должен сделать трюк. Исключая некоторые модные синтаксисы, большинство компиляторов С++ ведут себя одинаково. С++ - это язык с очень маленькой стандартной библиотекой (охватывающей в основном функции ввода-вывода, базовую математику и т.д.), Вероятно, это то, что вы называете чистым С++. Для чего-то более продвинутого вам придется использовать системные библиотеки. В примере, если вы хотите написать приложение windows gui, вам нужно будет включить заголовочный файл windows.h, который является специфичным для платформы и существует только на компиляторах Windows.

Ответ 8

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

В любом случае, могу ли я предложить вам использовать очень простую, почти неинтрузивную среду IDE, которая может быть полезна для учебных целей: http://www.bloodshed.net/devcpp.html

Он поставляется вместе с компилятором MinGW, поэтому он просто устанавливается и уходит.

Ответ 9

Я бы сказал, чтобы начать с Visual Studio. Это отличная среда для программирования С++ на окнах, может также использовать ее, когда она может ускорить некоторые вещи.

Различия между компиляторами не настолько велики - если вы можете написать твердый код в VS, то не должно быть проблем, чтобы выяснить, как заставить ваш код работать в GCC/g++.

Что касается книг; Исключительный С++ от Herb Sutter и языка программирования С++ от Bjarne Stroustrup - отличное чтение.

Visual Studio - это способ разработки для Windows.