Я опытный пользователь VS.NET и пытаюсь запустить Xcode 3.1.1.
.
Вот чего я пытаюсь достичь:
Я бы хотел, чтобы статическая библиотека («Lib») имела собственный файл xcodeproj. Я бы использовал исполняемое приложение («Приложение»), которое использует Lib для ссылки на файл xcodeproj Lib, чтобы изменения в Lib заставляли приложение повторно связываться. В идеале я хотел бы иметь возможность редактировать исходные файлы Lib внутри рабочего пространства Xcode приложения, чтобы мне не приходилось постоянно возиться с внесением изменений.
Из онлайн-справки я понял, что могу просто перетащить статическую библиотеку xcodeproj в проект моего приложения, и она получит ссылку. Я вижу, что как только моя статическая библиотека xcodeproj находится в проекте моего приложения, я могу просто перетащить ее в цель приложения, и она понимает, что приложение зависит от Lib. Это кажется правильным путем, но пока все работает не так, как хотелось бы.
Вот мои вопросы:
Кажется, что простая зависимость приложения от Lib не приводит к тому, что приложение связывается с Lib. Похоже, мне нужно явно перетащить libLib.a из папки Lib на этап сборки приложения «Связать двоичный файл с библиотеками». В VS.NET простое указание проекта как зависимости решения добавляет его в строку ссылки. Я просто хочу убедиться, что ничего не упускаю.
Когда у меня открыто приложение в Xcode, и я перетаскиваю в него Lib.xcodeproj, я не получаю туда никаких исходных файлов Lib. Я получаю только libLib.a из папки "Lib.xcodeproj". В VS.NET я могу редактировать исходные файлы Lib прямо здесь, перестраивать их и т. д., Но при таком подходе в Xcode изменения в Lib.cpp не приводят к перестройке Lib, когда я перестраиваю приложение. В идеале, когда я перетаскиваю Lib.xcodeproj в приложение, я должен отображать все исходные файлы и цели Lib. Есть ли способ сделать это?
Заранее спасибо за любые ответы!





Откройте проект приложения. Щелкните правой кнопкой мыши цель приложения и выберите «Получить информацию». Затем перейдите на вкладку «Общие» и найдите «Прямые зависимости». Нажмите кнопку (+) (знак плюса), чтобы добавить прямую зависимость. Lib.xcodeproj должен появиться среди списка возможностей для вас. Выберите цель Lib из этого списка.
Это должно привести к тому, что проект Lib должен быть построен (или перестроен), когда вы создаете цель приложения.
(Сейчас я редактирую свой собственный пост. Я понимаю, что ничего не сказал о пункте 2 в вопросе. На самом деле я все еще думаю о номере 2. Я не уверен, возможно это или нет.)
Я также довольно новый пользователь Xcode. Большую часть того, что я знаю, я узнал из книги Xcode Джеймса Буканека (ISBN 047175479x). Это более старая книга, написанная для / с Xcode 2.2, но я считаю, что почти все это применимо ко мне сегодня, и в настоящее время я использую Xcode 3.1.
Если вам интересно, вы, вероятно, сможете найти дешевую бывшую в употреблении копию.
Вы правы в том, что если сделать цель A зависимой от цели B (будь то в одном проекте или в нескольких проектах), нет заставляет цель A связываться с целью B. Вам необходимо четко указать их; это потому, что это разные концепции, и у вас могут быть зависимости между целями, которые вы не хотите связать друг с другом - например, инструмент командной строки, который создается целевой C и используется как часть процесса сборки для цель А.
Кроме того, вы правы в том, что ссылка на проект B из проекта A не позволит вам увидеть исходный код проекта B в окне проекта A. Это потому, что Xcode не имеет той же модели «рабочего пространства», что и Visual Studio и Eclipse; Вы выше упомянули о существовании «рабочей области, содержащей проект A», но в Xcode на самом деле ничего такого нет, только окно представляющий проекта A.
Я также новичок в Xcode 3.1, только что поиграл с упомянутыми вами проблемами и обнаружил, что по вашему второму вопросу проблем нет. Какое бы приложение вы ни использовали для редактирования исходного кода библиотеки зависимостей, ваш основной проект перестроит цель зависимости. Я проверил это:
Все работает хорошо.
Привет, Крис, большое спасибо за короткий, но подробный ответ. Я признателен за это!