Xcode - что такое $ (SRCROOT)?


115

Я смотрю проект Xcode, который использует некоторые библиотеки. Проект был создан на другом компьютере, поэтому мне нужно обновить некоторые пути. Все пути поиска библиотеки начинаются с $(SRCROOT). Что это значит?


Ответы:


147

Это путь к каталогу, содержащему проект Xcode.


Странно то, что когда я просматриваю пути в настройках сборки, все они начинаются с / Users / stevew. Когда я дважды щелкаю, чтобы получить подробное представление для этого параметра, все они вместо этого начинаются с $ (SRCRoot). Но на моем компьютере нет каталога / Users / stevew. Так он каким-то образом привязан к местоположению на другом компьютере?
Уильям Джокуш

Возможно, кто-то определил SRCROOT, используя абсолютный путь - обычно это удобный корневой каталог для всех источников в вашем проекте, но он не должен быть абсолютным путем, если у вас нет только одной машины для разработки.
Paul R

Добавляя к вашему ответу, это каталог локального XcodeProject, поэтому, если у вас есть MailCore в вашем проекте, SRCROOT MailCore - это каталог, в котором вы открываете проект MailCore. XCode имеет эту проблему с удобством использования, когда вы не можете прокручивать прямо на экране настроек проекта, поэтому, если у вас длинный путь, вы не сможете это сказать, поэтому я добавляю к этому ответу для тех, у кого длинные имена lib. Спасибо mipadi за основной ответ.
Stephen J

30
о чем PROJECT_DIR? Чем отличается от SRCROOT?
Гон

Не задавайте вопросов в комментариях; см. вопрос 36323031 о переполнении стека.
SwiftArchitect

20

2
Справочная документация Xcode теперь основана на версиях. Обновлена ​​ссылка на справочник по параметрам сборки Xcode 8.3 .
SwiftArchitect

3

$(SRCROOT)(он же $(SOURCE_ROOT)) - это путь к вашему местоположению, где .xcodeprojнаходится a .

Это просто проверить, просто введите его в поле, и Xcode даст вам подсказку.

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.