Вопрос

Я опытный пользователь VS.NET и пытаюсь начать работу с Xcode 3.1.1.
Вот чего я пытаюсь добиться:

Я бы хотел, чтобы статическая библиотека («Lib») имела собственный файл xcodeproj.У меня было бы исполняемое приложение («Приложение»), которое использует Lib для ссылки на файл xcodeproj Lib, чтобы изменения в Lib вызывали повторное связывание приложения.В идеале я хотел бы иметь возможность редактировать исходные файлы Lib внутри рабочей области Xcode приложения, чтобы мне не приходилось постоянно решать задачи, чтобы внести изменения.

Из онлайн-справки я понял, что могу просто перетащить статическую библиотеку xcodeproj в проект своего приложения, и она получит ссылку.Я вижу, что как только моя статическая библиотека xcodeproj окажется в проекте моего приложения, я могу просто перетащить ее в цель приложения, и она поймет, что приложение зависит от Lib.Кажется, это правильный путь, но пока все идет не совсем так, как мне хотелось бы.

Вот мои вопросы:

  1. Кажется, что простая зависимость приложения от Lib не приводит к тому, что приложение связывается с Lib.Кажется, мне нужно явно перетащить libLib.a из папки Lib на этап сборки приложения «Link Binary With Libraries».В VS.NET простое указание проекта как зависимости решения добавляет его в строку ссылки.Я просто хочу убедиться, что ничего не упускаю.

  2. Когда у меня открыто приложение в Xcode и я перетаскиваю в него Lib.xcodeproj, я не получаю там ни одного исходного файла Lib.Я получаю libLib.a только в папке «Lib.xcodeproj».В VS.NET я могу прямо здесь редактировать исходные файлы Lib, пересобирать их и т. д.но при таком подходе в Xcode изменения в Lib.cpp не приводят к пересборке Lib при пересборке приложения.В идеале я бы хотел, чтобы все исходные файлы и цели Lib отображались, когда я перетаскиваю Lib.xcodeproj в App.Есть ли способ сделать это?

Заранее спасибо за любые ответы!

Это было полезно?

Решение

Вы правы в том, что зависимость цели A от цели B (в пределах одного проекта или между проектами) не делает нет заставить цель A связаться с целью B.Вам необходимо указать их четко;это потому, что это отдельные концепции, и у вас могут быть зависимости между целями, которые вы не хотят связать друг с другом — например, инструмент командной строки, который создается целью C и используется как часть процесса сборки для цели A.

Кроме того, вы правы в том, что ссылка на проект B из проекта A не позволит вам увидеть исходный код проекта B в окне проекта A.Это потому, что Xcode не имеет той же модели «рабочего пространства», что и Visual Studio и Eclipse;выше вы упомянули о существовании «рабочей области, содержащей проект A», но в Xcode на самом деле нет такой вещи, просто окно представляющий проект А.

Другие советы

Откройте проект приложения.Щелкните правой кнопкой мыши на цель приложения и выберите «Получить информацию». Затем перейдите на вкладку «Общие» и найдите «прямые зависимости». Нажмите кнопку ( +) (плюс знак), чтобы добавить прямую зависимость.Lib.xcodeproj должен появиться среди списка возможностей.Выберите цель Lib из этого списка.

Это должно привести к тому, что проект Lib должен быть построен (или перестроен) при создании целевого приложения.

(Сейчас редактирую свой пост.Я понимаю, что ничего не сказал о пункте номер 2 в вопросе.На самом деле я все еще думаю о номере 2.Не знаю, возможно это или нет.)

Я также новичок в Xcode 3.1, только что поигрался с упомянутыми вами проблемами и обнаружил, что с вашим вторым вопросом проблем нет.Какое бы приложение вы ни использовали для редактирования исходного кода библиотеки зависимостей, ваш основной проект перестроит цель зависимости.Я проверил это:

  1. отредактировал исходный файл библиотеки, от которой зависит ваше приложение, с помощью приложения «Блокнот».
  2. Выделите ссылку на проект библиотеки зависимостей, щелкните правой кнопкой мыши и выберите «Открыть с помощью Finder», затем выберите нужный исходный файл и отредактируйте его.

Все работает хорошо.

Я также довольно новый пользователь Xcode.Большую часть того, что я знаю, я узнал из книги Джеймса Буканека по Xcode (ISBN 047175479x).Это старая книга, написанная для/с использованием Xcode 2.2, но я считаю, что почти все из нее по-прежнему применимо ко мне сегодня, и в настоящее время я использую Xcode 3.1.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top