Комплексное решение для написания приложений Mac OS X на C ++ - PullRequest
16 голосов
/ 11 марта 2009

Я ищу альтернативы для моей текущей версии, и Mac OS X кажется очень привлекательной.

Моя основная область интересов - программирование на C ++. В настоящее время я использую Eclipse + CDT и g ++ для создания своего программного обеспечения; иногда это KDevelop.

Я знаю, что основной IDE для Mac является Xcode, а основным языком является Objective-C. Я хотел бы избежать изучения Objective-C, если это вообще возможно. Я также слышал / читал, что есть некоторые проблемы с доступом к API Mac OS X из C ++.

Отсюда и мой вопрос: Каково полное решение для разработки / отладки / тестирования приложений C ++, которые имеют доступ ко всем аспектам аппаратного обеспечения (интерфейс пользователя, звук, видео / ускоренное видео и т. д.) для Mac OS X?

Редактировать: как Xcode сравнивается с комбо Eclipse + CDT? Если это сравнение вообще возможно ...

Ответы [ 14 ]

15 голосов
/ 11 марта 2009

Если вы хотите использовать C ++ вместо Objective-C и все еще хотите избежать промежуточного уровня библиотек (например, QT), вы можете использовать Carbon .

Я бы использовал XCode вместо Eclipse просто потому, что Eclipse намного медленнее при работе с хардкорным программированием на C / C ++ (компиляция, отладка, тестирование).

Когда я впервые начал программировать в Mac OS X, я был на той же странице, что и вы сейчас. Я думал, что лучше придерживаться языка, который я знал (C ++), и использовать более старую библиотеку (Carbon). По какой-то причине я не помню сейчас, я заставил себя в какао (Objective-C). Оглядываясь назад, я думаю, что это было хорошо, потому что:

  1. Objective-C принципиально не отличается от C ++
  2. Какао лучше, быстрее и проще, чем Carbon
  3. iPhone Dev исключительно какао (углерод не поддерживается)
10 голосов
/ 11 марта 2009

Вы должны не избегать изучения Objective-C и какао. На самом деле это должно быть первым, что вы делаете. Если у вас нет хорошего фона в Smalltalk, вы вряд ли столкнетесь с большим (набором) фреймворком, который также хорошо спроектирован.

7 голосов
/ 11 марта 2009

Objective-C не так уж и сложен. Если вы знаете C ++, вам понадобится день или три прикладных усилий, чтобы выучить соглашения.

API и соглашения Cocoa требуют больше времени, но они приходят вовремя.

Удачи!

5 голосов
/ 11 марта 2009

Я играл с Objective-C ++ для написания пользовательского интерфейса, упрощая использование C ++ для написания серверной части приложения. Кажется, это работает очень хорошо для меня. Objective-C и Objective-C ++ довольно легко подобрать, и это позволяет мне продолжать использовать свои с трудом завоеванные знания C ++.

5 голосов
/ 11 марта 2009

Если вы не планируете использовать промежуточный уровень, такой как QT, я думаю, что вы в значительной степени застряли в Objective C для взаимодействия с частями API, такими как GUI, поскольку это их родной язык.

Тем не менее, уже упоминалось, что вы можете легко смешивать код Objective-C и код C ++, так что вы по-прежнему сможете писать большую часть своего приложения на C ++.

Я в основном программист на C ++, но я всегда увлекаюсь другими языками, и у меня была игра с XCode (да, у меня есть Mac). Мне понравилось, это немного по-другому, но как способ объединить графический интерфейс OS X, он великолепен, а остальное между вами и вашим любимым редактором, если вам не очень нравится XCode.

2 голосов
/ 03 июля 2010

C ++ очень хорошо работает с Xcode. Если вы хотите какао, вы можете выучить минимальное (и я имею в виду действительно минимальное) количество Obj-C для уровня графического интерфейса и получить большую часть вашего кода на C ++.

Другим вариантом является использование одной из языковых сред сценариев для подключения к API-интерфейсу Cocoa (например, PyObjc) и большей части вашей логики в C ++.

Третий и последний вариант - использование кроссплатформенного графического набора, такого как Qt4. Если есть желание сделать ваши библиотеки кроссплатформенными, это будет путь.

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

2 голосов
/ 11 марта 2009

Carbon в Mac OS X фактически устарел - он не поддерживает и не будет поддерживать 64-битные приложения.

Если вы действительно хотите использовать c ++, используйте Qt Creator

Это бесплатно, и trolltech SDK включает в себя Qt 4.5, который хотя и является фреймворком c ++, он использует Objective-C для взаимодействия с MAC OS X, так что вы не ограничены Carbon.

Недостатком является то, что библиотеки trolltech не являются стандартными для Mac, вы должны предоставить их вместе с приложением.

2 голосов
/ 11 марта 2009

Нет проблем с использованием gcc или g ++ из OS X. Установка XCode в любом случае дает вам эти компиляторы, и если вы действительно хотите, вы можете загрузить экземпляр x-сервера и заставить работать KDE. Мне сам редактор XCode нравится. Eclipse также работает с OS X, поэтому вы должны иметь возможность использовать текущую среду.

Раньше я использовал блок OS X для кросс-компиляции кода C из архива PPC в ARM, без проблем. Это просто еще одна система в стиле * nix, так что все знакомые вам инструменты уже существуют, а если нет, просто используйте fink или macports , чтобы получить их самостоятельно.

Также, если вы действительно хотите использовать C ++ для разработки приложений GUI OS X, вы всегда можете использовать Carbon вместо Cocoa. Это вполне жизнеспособный выбор, только слегка осуждаемый.

1 голос
/ 11 марта 2009

Я согласен с Пабло Санта Крузом и хотел бы добавить, что смешивать Objective-C с C ++ в одном приложении (и в одном и том же исходном файле) тривиально. Это называется Objective-C ++ и обсуждается в этой статье .

XCode компилируется с GCC, поэтому у вас под рукой есть Objective C, C и C ++.

0 голосов
/ 24 июня 2010

Средой разработки, которую я сейчас использую для разработки на Mac, является QTCreator, которая является бесплатной IDE для разработки на QT с компилятором gcc. Он предоставляет все необходимые мне функции и является кроссплатформенным (одно требование к разрабатываемому приложению).

Я должен сказать, что был впечатлен. У меня не было больших надежд на такую ​​целенаправленную (специально разработанную для QT) и недавнюю среду разработки Среда простая, но мощная (включая редактирование графического интерфейса) и имеет лучшее завершение кода, которое я когда-либо видел. Это простое программирование в этой среде, и не пропустите Visual Studio.

Действительно стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...