Использование XCode для сборки, профилирования, редактирования консольных программ unix \ linux - PullRequest
3 голосов
/ 11 декабря 2011

Не могли бы вы дать несколько советов по сборке, профилированию и редактированию консольных программ на C / C ++ unix / linux в XCode.

Я не смог найти ни одного недавнего HOWTO по этой теме.

Кажется, что для проектов XCode это необходимо. Итак, я создал новый проект с «внешней системой сборки» и добавил свои * .c и * .h файлы с помощью drag'n'drop.

Но я не смог оттуда «присоединиться к процессу», потому что пункт меню отображается серым цветом.

Кроме того, завершение кода и переход кода не работают, даже если определение структуры находится в одном файле.

Вопрос касается создания / профилирования / редактирования существующих программ на C / C ++, а не создания новых.

Например, этот человек использует XCode для разработки MySQL: http://dom.as/2011/09/25/blowing-up-in-memory/

Ответы [ 3 ]

11 голосов
/ 18 декабря 2011

Для завершения кода, прыжка кода и т. Д. Вам необходимо создать цель сборки для утилиты. Я годами использую XCode для разработки утилит CLI, которые затем портирую на другие * nix-платформы.

Вот основные инструкции по созданию цели сборки, которая позволит вам в полной мере использовать среду XCode при работе с вашей утилитой:

  1. Создать пустой проект.
  2. Добавить цель с помощью шаблона «Инструмент командной строки» (Menubar -> Файл -> Создать -> Новая цель).
  3. Удалить файлы, добавленные шаблоном (обычно это будет имя цели).
  4. Добавьте исходный код в ваш проект Xcode.
  5. Откройте фазы сборки для созданной вами цели:
    1. Нажмите на название проекта в навигаторе.
    2. Выберите цель на центральной панели.
    3. Нажмите на вкладку «Этапы сборки».
  6. Под "Компиляцией источников" добавлены источники, необходимые для сборки вашей утилиты.
  7. В разделе «Link Binary With Libraries» добавьте необходимые библиотеки для связи с вашей утилитой.

Возможно, вам потребуется добавить схему для вашей новой цели, если это так:

  1. Откройте диспетчер схем (Menubar -> Продукт -> Управление схемами).
  2. Нажмите кнопку «Создать схемы сейчас».

Теперь вы сможете использовать те же инструменты для создания / профиля / редактирования вашей утилиты, что и для приложений OS X или iOS.

Вот несколько примеров, где я сделал выше:

  • https://github.com/bindle/iOSPorts (есть проекты Xcode для OpenSSL, OpenLDAP, Cyrus SASL и PCRE, при условии, что они в настоящее время компилируются для iOS).
  • https://github.com/bindle/odbcshell (проект, который я написал для систем Linux / FreeBSD с использованием Xcode).
1 голос
/ 13 декабря 2011

Я использовал XCode для написания многих консольных программ на C и C ++, когда учился в школе. Я начал каждый с шаблона приложения консоли XCode. Я зависел от стандартных библиотек C и POSIX. Я держался подальше от библиотек Apple. Я мог бы создавать, запускать, профилировать и отлаживать программы из Xcode. Единственное, что я не смог сделать в Xcode, - это создать конфигурацию переносимой сборки. Для этих программ консольных проектов класса я бы просто написал make-файл для каждого проекта. С самого начала я знал, что мне понадобится рукописный make-файл, поэтому процесс сборки был простым.

Сейчас я пишу в основном приложения для iOS, но иногда я пишу консольное приложение для предварительной обработки данных для моих приложений для iOS. Я не вижу каких-либо улучшений в новых версиях Xcode для построения систем кроссплатформенной сборки. Xcode ориентирован на приложения для iOS и Mac, но признает необходимость в консольных программах и включает в себя некоторую специфическую поддержку Mac OS X.

Так что мой совет для написания консольных программ для других платформ в XCode состоит в том, чтобы сохранить процесс сборки простым. Начните с шаблона проекта консольного приложения Xcode. Оставайтесь с системами сборки проекта Xcode. Заставьте программу работать, используя функции Xcode IDE. Затем перенесите процесс сборки на внешнюю систему сборки. Напишите make-файл или используйте любые инструменты сборки, которые вы предпочитаете. Используйте командную строку в Mac OS X для сборки и тестирования программы в Mac OS X из этой новой системы сборки. Затем перенесите проект на другую платформу, соберите и снова протестируйте. Я редко обнаруживал какие-либо проблемы, когда доходил до второй платформы.

Я даже использовал этот метод, работая в командах, где члены моей команды не были на Mac. Каждый из нас использовал свой собственный выбор в системах сборки, делясь файлами исходного кода. Тем не менее, я мог видеть, что поддержка нескольких систем сборки для больших сложных программ быстро станет несостоятельной. В этот момент я бы порекомендовал стандартизировать одну IDE.

1 голос
/ 12 декабря 2011

Xcode - это вещь Apple, и у вас ее нет в Linux (и я не уверен, что использовать ее в кросс-компиляторной настройке - хост - это Apple, цель - это Linux-это хороший способ работы, и, вероятно, это невозможно).

В Linux вы можете использовать традиционные инструменты (например, Emacs, Make, GCC, ..., как работают люди из Unix).), или вы можете попробовать некоторые необычные IDE , такие как anjuta , netbeans , eclipse и многие другие.

Я достаточно взрослый, чтобы найти IDE практически бесполезным для меня, и я очень счастлив, используя свою смесь Emacs, Make, GCC, Svn или Git, Gdb и т. Д. Я знаю многих опытных разработчиков Linux, не использующих IDE.

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