Как исправить предупреждение "это динамическая библиотека, не добавленная в статическую библиотеку"?

Я только что обновился до Xcode 5.1, и внезапно появилось новое предупреждение:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1. sdk / usr / lib / libz.dylib - динамическая библиотека, не добавленная в статическую библиотеку

Целью, которая генерирует это предупреждение, является статическая библиотека cocos2d-iphone v2 (вместо использования шаблонов cocos2d я создаю статическую библиотеку). Чтобы создать статическую библиотеку, все, что я сделал, это добавил проект cocos2d в мое рабочее пространство, чтобы мой проект связывался с библиотеками, на которые ссылается cocos2d, и все. До этого обновления все работало нормально, но теперь есть предупреждение.

Как это исправить? Я не хочу связываться с проектом cocos2d, потому что есть некоторые проекты, в которых я использую шаблон cocos2d, а не статическую библиотеку.

1 ответ

Решение

Статические библиотеки не могут связываться с dylibs. Ранее это просто игнорировалось. Вам нужно удалить указанный dylib из статической целевой библиотеки и, при необходимости, добавить его к каждой целевой точке, которая создает фактическое приложение.

Посмотрите на фазу сборки бинарных ссылок. Зная cocos2d, вероятно, есть флаг другого компоновщика "-lz", который вам нужно удалить из настроек сборки цели cocos2d.

Другие вопросы по тегам