2016-07-05 3 views
2

Я создал статическую библиотеку с простой математической функцией и создал с ней универсальную двоичную информацию. Построение для активных архитектур только было установлено NO, строя это.Неопределенные символы для архитектуры arm64 xcode 7.3

lipo -info libcheckC.a 
Architectures in the fat file: libcheckC.a are: armv7 x86_64 arm64 

Я добавил этот файл в другой проект и проверить, что Другие флаги компоновщика имеют -ObjC, -lcheckC, $ (наследуется)

Библиотека также присутствует под «Build Phases -> Ссылка двоичный с библиотеками ".

Я создал заголовок моста и добавил файл заголовка в свой проект.

Я все еще получаю ошибку

Undefined symbols for architecture arm64: 
"_squareOf", referenced from: 
     checkCLib.ViewController.calculate (__ObjC.UIButton) ->() in ViewController.o 
ld: symbol(s) not found for architecture arm64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Я использую Xcode 7.3

При попытке команды вручную, я огонь следующий - скопировано из Xcode с добавлением -v и углубляясь оттуда. Я получаю следующие данные.

@(#)PROGRAM:ld PROJECT:ld64-264.3.101 
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em (tvOS) 
Library search paths: 
/Users/test/Library/Developer/Xcode/DerivedData/Build/Products/Release-universal/ 
/Users/test/Documents/MyIApps/checkCLib/checkCLib 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib 
Framework search paths: 
/Users/test/Library/Developer/Xcode/DerivedData/Build/Products/Release-universal/ 
/Users/test/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/ 
Undefined symbols for architecture arm64: 
    "_squareOf", referenced from: 
    checkCLib.ViewController.calculate (__ObjC.UIButton) ->() in ViewController.o 
ld: symbol(s) not found for architecture arm64 

Библиотека существует по указанному пути, содержит символ и поддерживает архитектуру.

lipo -info /Users/test/Library/Developer/Xcode/DerivedData/Build/Products/Release-universal/libcheckC.a 
Architectures in the fat file: /Users/test/Library/Developer/Xcode/DerivedData/Build/Products/Release-universal/libcheckC.a are: armv7 x86_64 arm64 

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm /Users/test/Library/Developer/Xcode/DerivedData/Build/Products/Release-universal/libcheckC.a 

/Users/test/Library/Developer/Xcode/DerivedData/Build/Products/Release-universal/libcheckC.a(square.o): 
0000000000000000 T _sqaureOf 

ответ

0

добавить путь к библиотеке в Library Поиск Путей ли?

enter image description here

+0

Да. Пути поиска библиотеки содержат «$ (унаследованный)», $ (PROJECT_DIR)/checkCLib. Я также добавил/Users/test/Library/Developer/Xcode/DerivedData/Build/Products/Release-universal/к нему – Amruta

+0

, но путь поиска в порядке? – tymac

+0

Не жалуется на то, что библиотека не найдена. Поэтому он находит библиотеку, но не символ. Нужно ли добавлять какой-либо оператор "include"/"import" в мой быстрый файл? – Amruta

0

В моем случае, я решил эту проблему, также добавив включать заявление для .c (код) файл, а не только файл .h (заголовок). Похоже, что XCode не смог найти функцию.

Смежные вопросы