Почему линкер связывает статические библиотеки с ошибками?IOS - PullRequest
0 голосов
/ 27 сентября 2018

У меня проблема с привязкой моей смешанной языковой инфраструктуры к проекту.

1) Я создаю среду с классами Swift и Objective-C.

2) Основная логика была сохранена в файле Swift.Например, класс с методом, который вызывает NSLog («был вызван журнал Swift»).

3) В файле Objective-C есть класс, в котором есть метод, в котором я создаю экземпляр класса Swift и вызываю метод Swift-log.

4) Я связываю этот фреймворк с моим проектом Objective-C, я могу назвать все, что мне нужно в этом проекте, но когда я хочу построить этот проект, я получаю сообщение об ошибке "linker command failed with exit code 1 (use -v to see invocation)"

И предупреждения:

ld: warning: Could not find auto-linked library 'swiftFoundation'

ld: warning: Could not find auto-linked library 'swiftDarwin'

ld: warning: Could not find auto-linked library 'swiftCoreFoundation'

ld: warning: Could not find auto-linked library 'swiftCore'

ld: warning: Could not find auto-linked library 'swiftCoreGraphics'

ld: warning: Could not find auto-linked library 'swiftObjectiveC'

ld: warning: Could not find auto-linked library 'swiftDispatch'

ld: warning: Could not find auto-linked library 'swiftSwiftOnoneSupport'

Я также видел решение с импортом пустого Swift-файла, но нужно было сделать проект без мусора.

Ответы [ 7 ]

0 голосов
/ 20 июля 2019

Для XCode 11 beta 4 Пути поиска в библиотеке должны быть:

$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
0 голосов
/ 22 июля 2019

Если вы столкнулись с этой ошибкой при использовании Xcode 11 beta 4 в сочетании с Carthage, посмотрите этот обходной путь:

https://github.com/Carthage/Carthage/issues/2825

По сути, он состоит из создания xcconfig с исправлениями и внедренияэто в каждой сборке.

0 голосов
/ 17 мая 2019

В моем случае это был проект React-Native после добавления библиотеки Swift Pods.Может быть, только шаг 2 может работать:

  1. Добавление нового файла Swift и заголовка Brigde:

1) File -> New -> File imageFile -> New -> File">

2) Выбрать Swift File imageSwift File">

3) Подтвердить Create Bridging Header enter image description here

Перейдите на Build Settings и установите Always Embed Swift Standard Libraries на YES Always Embed Swift Standard Libraries
0 голосов
/ 08 февраля 2019
  1. Откройте ios / YourAppName.xcodeproj в Xcode
  2. Щелкните правой кнопкой мыши на имени вашего приложения в Навигаторе проекта слева и выберите Новый файл…
  3. Создать один пустойФайл Swift для проекта (убедитесь, что при добавлении выбран целевой объект «Ваше имя приложения»)
  4. , когда Xcode спросит, нажмите «Создать заголовок моста» и не удаляйте файл Swift.перезапустите сборку.

Это должно решить проблему

0 голосов
/ 30 января 2019

У меня такие же ошибки при случайной компиляции проекта со снимком Swift 5.0, настроенным в настройках XCode »Компоненты» Набор инструментов.

0 голосов
/ 01 ноября 2018

Очевидно, что для чисто объективных проектов c вам нужно будет добавить это $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) в пути поиска библиотеки вашей цели.Это сработало для меня, когда я включал библиотеку, написанную на swift, в проект в target-c

0 голосов
/ 23 октября 2018

Попробуйте этот обходной путь https://stackoverflow.com/a/50495316/1658268

По сути, просто добавьте фиктивный файл swift в свой проект и перезапустите сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...