2012-06-07 1 views
3

я пытался сделать загрузку образец кода запуска по ссылке

http://www.magtek.com/support/software/downloads/sw/99510108.zip

Это устройство чтения карт апи, вот пример code.When я запускаю этот код Я получил ошибку:

ld: warning: ignoring file /Users/gaurav.garg/Downloads/99510108/SampleCode/Lib/libMTSCRA.a, missing required architecture i386 in file 
Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_MTSCRA", referenced from: 
     objc-class-ref in MagTekDemoAppDelegate.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

класс MTSCRA является только файл заголовка, и решение, которое я cheked То, что мы должны добавить файл .m в скомпилированный исходный путь построения сборки фазы цели ... но, к сожалению, у меня нет файла MTSCRA.m.MTscra.h есть AudioToolBox a внешняя структура.

ответ

3
Undefined symbols for architecture i386: 

Это значит, что библиотеки, на которые вы ссылаетесь, не имеют символов для i386. Это означает, что вы не можете использовать симулятор. Вам нужно будет запустить образец на устройстве или получить версию библиотеки, созданной для симулятора.

+0

: Это решение работает !!!! Большое спасибо вам ..... Очень благодарен вам –

+0

@bastahlhood: Я получаю эту ошибку при запуске на устройстве: ** Ошибка запуска удаленной программы: нет такого файла или каталога (/Users/gaurav.garg/ Библиотека/Разработчик/Xcode/DerivedData/MagTekDemo-eojqpfzujdtekwftlqbzzyfmuwng/Build/Products/Debug-iphoneos/MTDemo.SCRA.app/MTDemo.SCRA). ** Я запускаю его по профилю разработчика. Я его убирал много раз , И сборка установлена, но не открыта в момент. Мы manullay откройте приложение. –

+0

@bastahlhood: Нашел it.we нужно выйти из xcode i.e.png app.Thanks –

0

Вам необходимо убедиться, что вы включаете все Framework, которые требуются этой библиотекой.

+0

: Какие фреймворки, которые мне нужны, я не знаю ..... Однако есть Audiotoolbox, рамки ExternalAccessory добавлены уже с 3 базовыми фреймами. Еще одна вещь, что файл Mtscra.h импортировал Foundation, AudioToolbox, ** AudioUnit **, ExternalAccessory, но в рамках, когда я добавляю рамки ** Audiounit **. Это показывает еще одну ошибку, что Audiounit frmework не найден –

+0

Это почти наверняка ваша проблема. –

+0

Добавьте их также в CoreAudio.framework и AudioToolbox.framework для AudioUnit –

8

На самом деле проблема в том, что MagTek предоставляет вам два отдельных файла .a.

Если вы посмотрите на один в расцепления iphoneos и выполните следующую команду:

> lipo -info libMTSCRA.a 
Architectures in the fat file: libMTSCRA.a are: armv7 (cputype (12) cpusubtype (11)) 

Аналогично, если вы посмотрите на один в релиз-iphonesimulator ...

> lipo -info libMTSCRA.a 
input file libMTSCRA.a is not a fat file 
Non-fat file: libMTSCRA.a is architecture: i386 

Так реальный ответ заключается в создании нового libMTSCRA.a для DEBUG, который является n-way FAT, объединяя два инструмента lib и затем создавая отдельные пути поиска библиотеки DEBUG и RELEASE.

Для начала вы бы перейти в каталог выше, где MagTek держит две различные версии libMTSCRA.a Когда вы там, вы будете запускать следующую команду:

libtool -static -o libMTSCRA_FAT.a Release-iphoneos/libMTSCRA.a Release-iphonesimulator/libMTSCRA.a 

При просмотре выходного файла, вы должны увидеть:

>lipo -info libMTSCRA_FAT.a 
Architectures in the fat file: libMTSCRA.a are: armv7 (cputype (12) cpusubtype (11)) i386 

тогда в вашем проекте, создать две папки (ака групп) «отладки» & «освобождения», а затем реструктуризацию отлаживать и RELEASE Библиотека Пути поиска, чтобы использовать эти соответствующие каталоги.

И наконец, переименуйте libMTSCRA_FAT.a в libMTSCRA.a и поместите его в путь поиска отладки, сохраняя iOS (armv7 (cputype (12) cpusubtype (11))) в выпуске. Причина, по которой мы это делаем, заключается в том, что, хотя может быть хорошо использовать этот вновь созданный файл .a в режиме отладки, считается плохим вкусом, чтобы продвинуть его в производство, потому что мы не можем подтвердить, что объединенная библиотека на 100% (слияние арки).

Et voilà!

+0

Это решает мою ошибку. Спасибо –

+0

Спасибо, +1 за ваш ответ ... –

+0

большое вам спасибо –

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