Что такое $(наследуется) в настройках пути поиска XCode?
Что $(inherited)
настройка пути поиска?
Я изменил настройки пути поиска заголовка и библиотеки в отношении OpenSSL для iPad, и эта проблема, наряду с рекурсивной опцией для данного пути, была основной причиной.
Когда я переставил мои пути поиска, чтобы сначала посмотреть в каталогах, а затем в $(inherited)
, сборки iPad работали.
5 ответов
Я тоже ищу документацию. Но я сделал опыт, что $(inherited)
может использоваться для наследования параметров сборки от уровня проекта до целевого уровня. Когда вы определяете пути поиска библиотеки или заголовка на уровне проекта, вы можете использовать $(inherited)
в настройках сборки цели использовать эти пути поиска в путях поиска целей проекта.
Если вы перейдете в настройки целевой сборки и переключитесь в режим просмотра уровня
Вы можете увидеть поток inherited
справа налево
Resolved <- Target <- xcconfig <- Project <- iOS Default
Так в inherited
в Target означает, что Target наследует настройки от xcconfig и Project
Пример переопределения переменных параметров сборки, установленных на уровне проекта или цели, путем переназначения значения этой переменной в файле xcconfig.
// Variable set in the project file, previous level
OTHER_LDFLAGS = -ObjC
// lib.xcconfig
OTHER_LDFLAGS = -framework Security
^ При компиляции с этим предыдущее значение OTHER_LDFLAGS -ObjC
будет переопределено новым значением -framework Security
,
Пример наследования переменных параметров сборки, установленных на уровне проекта или цели, путем добавления предыдущего значения этой переменной в файле xcconfig. Думать о $(inherited)
в качестве специальной переменной, которую можно использовать для получения существующего значения переменной, чтобы присвоение этой же переменной не было разрушительным.
// Variable set in the project file, previous level
OTHER_LDFLAGS = -ObjC
// lib.xcconfig
OTHER_LDFLAGS = $(inherited) -framework Security
^ При компиляции с этим значение OTHER_LDFLAGS будет -ObjC -framework Security
,
Пример найден по адресу https://pewpewthespells.com/blog/xcconfig_guide.html
ДОБАВЛЕНИЕ: с $(inherited)
Настройки сборки-> Путь поиска библиотеки автоматически заполняется, когда вы добавляете библиотеку к цели, щелкая в правой панели Целевое членство. Это не происходит иначе.
Xcode $(унаследовано)
[Синтаксис Xcode ${&lt;variable_name&gt;}]
Переменная Xcode может быть определена на разных уровнях (Project, .xcconfig, Target, Default). Когда вы используете
Build Settings -> Levels
на вкладке вы можете проверить иерархию и разрешенный результат
использует значение переменной с суперуровня .
Обратите внимание на несколько вещей:
Это полезно, когда вы должны объединить значение результата, например
$(inherited)-myPrefix
. Это не так полезно использовать в качестве отдельного выражения, потому что даже когда вы удаляете или любое другое значение из наследника (цель является преемником проекта), Xcode автоматически изменяет это значение на основе предшественникаВы можете установить на уровне проекта и уровне цели, поэтому иерархия результатов не является постоянной.
Resolved <- Target <- Target .xcconfig <- Project <- Project .xcconfig <- Default
Например Target =
$(inherited)