Как я могу писать кроссплатформенные программы на С ++ на моем Mac? - PullRequest
0 голосов
/ 12 января 2012

Мой преподаватель университета дал нам требование в своем классе c ++: мы должны писать наши программы с использованием компилятора gnu C ++ (GCC).Я понимаю, что после установки xcode я получаю версию gcc для яблока.Однако, как я понимаю, это не полностью совместимо.Поэтому я попытался установить компилятор gnu gcc с помощью портов Mac, но у меня ничего не получилось.После выполнения:

port install gcc47

Когда я иду к терминалу и запускаю:

gcc47 -v

Я получаю «команда не найдена» При запуске:

gcc -v

Я получаю:

gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)

Показывает, что я все еще использую версию Apple.Часть, которую я не понимаю:

  1. Как установить gcc (версия gnu, а не версия apple)
  2. Как использовать его с ide, например eclipse?

Ответы [ 2 ]

0 голосов
/ 12 января 2012

В прошлом я сталкивался с проблемами при установке gcc47 через порты, но gcc46 прошел как ожидалось. Вы также можете установить gcc_select.

Оттуда вы можете использовать gcc_select или указать путь явно в редакторе цепочек инструментов Eclipse.

Другие примечания:

  • Если вам не нужны функции C ++ 11, то Apple GCC 4.2.1 должна работать нормально. Возможно, вы можете подробно объяснить, почему вы не можете его использовать. По сути, в некоторых случаях Apple добавила некоторые расширения в набор инструментов (помеченные как APPLE_ONLY), и у вас есть хороший контроль над тем, какие параметры включены / отключены.

  • Последние версии Clang, поставляемые с Xcode, хорошо справляются с C ++ (включая некоторую поддержку C ++ 11). В GCC есть некоторые продвинутые вещи, которые мне не хватает при использовании Clang, но текущая поддержка C ++ в Clang действительно неплохая.

0 голосов
/ 12 января 2012

Версия GCC, которую вы используете (Apple или gnu native), не должна иметь значения для продолжения.

Написание переносимого C ++ не имеет ничего общего с компилятором - кроме гарантии того, что ваш компилятор делает все возможное, придерживаться стандарта C ++. К счастью, GCC - один из лучших компиляторов C ++.

Вы не собираетесь делать кроссплатформенный C ++ как таковой, потому что настоящий переносимый C ++ является довольно трудной задачей, учитывая различные состояния компиляторов C ++ для различных систем (например, CC на VAX / VMS не Поддерживаю шаблоны ...). Я подозреваю, что вы хотите, чтобы ваш проф. Компилировал код, который вы пишете на своем Mac. Пока GCC может справиться с этим на вашем Mac, все должно быть в порядке.

Итак, на ваши конкретные вопросы:

Ваш первый вопрос не нужен, так как вы можете использовать предоставленный Apple g ++ для компиляции вашего кода.

Что касается вашего второго вопроса, я настоятельно рекомендую не использовать IDE при попытке учиться. IDE предлагают действительно отличные возможности для экономии времени, но они скрывают некоторые важные аспекты, с которыми, я считаю, стоит бороться на ранних этапах вашего обучения, и которые помогут укрепить ваши навыки C ++. И хотя все, безусловно, стало лучше, некоторые IDE были известны тем, что создавали непереносимый C ++ (то есть, используя void main()).

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

...