Некоторым библиотекам требуется флаг компоновщика -all_load при компоновке с проектом Xcode. Однако это приводит к ошибке компоновщика, если между библиотеками возникают конфликты символов. Решение состоит в использовании -force_load, который эффективно позволяет вам использовать -all_load в одних библиотеках, но не в других.
Однако это, в свою очередь, приводит к новой проблеме, по крайней мере, для меня. Когда я использую -force_load с относительным путем к библиотеке, компоновщик всегда обнаруживает конфликты символов между библиотекой и самим собой. Похоже, что компоновщик считает, что библиотека с ее абсолютным путем и библиотека с относительным путем - это разные библиотеки, и поэтому обнаруживает конфликты между библиотекой и самим собой.
Я могу избежать этого, используя абсолютный путь с флагом. Но это не лучшее решение, так как исходный код библиотек удобно хранить в моем каталоге документов. Но путь к каталогу документов на других машинах будет другим.
Вопрос: Может ли кто-нибудь заставить force_load работать с относительным путем к библиотеке?
РЕДАКТИРОВАТЬ: для получения справочной информации см. это вопрос
$(SRCROOT)
, иначе я получу дублирующиеся символы - person onmyway133   schedule 23.08.2018