2014-01-27 3 views
0

Я создаю проект iOS из Unity и пытаюсь его скомпилировать. Я закончил со следующей ошибкой. Я применил ChartBoost в моем проекте Unity.ChartBoost - Ошибка Apple Mach-O Linker

ld: warning: ignoring file ../libChartboost.a, missing required architecture i386 in file ../libChartboost.a (2 slices) 
Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_CBAnalytics", referenced from: 
     objc-class-ref in ChartBoostBinding.o 
    "_OBJC_CLASS_$_Chartboost", referenced from: 
     objc-class-ref in ChartBoostBinding.o 
     objc-class-ref in ChartBoostManager.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Я искал пару существующих ответов, но ничего не работает. Я не уверен, как это исправить. Любые предложения будут высоко оценены.

+0

Вам необходимо перестроить 'libChartboost.a' как« жировую библиотеку », включая архитектуру i386 (для iOS Simulator), а также другие стандартные архитектуры. – trojanfoe

+0

Я не знаком с процессом сборки «жирной библиотеки». Как это можно сделать? – muneikh

+0

Вы в основном создаете библиотеку ('.a' файл) для каждой архитектуры, а затем используете' lipo', чтобы полностью их обмануть. Это не тривиальный процесс. – trojanfoe

ответ

0

Хотя мы можем сделать жирную библиотеку по комментариям @trojanfoe, но в настоящее время libChartBoost.a доступен только для ARM, а не для архитектуры i386. Следовательно, эта программа не будет работать на симуляторе и должна выполняться на устройстве архитектуры на базе ARM.

0

Для чего в 4.0 и 4.1 нет кода i386, который включен в библиотеку.

Служба поддержки Chartboost сообщает мне, что 4.2 делает. И он делает - однако он также имеет ошибку в сборке i386, которая мешает ему компилировать! Возможно, в 4.3 ...

Или, если вам действительно не нужны функции 4.X - последняя версия 3.X прекрасна на данный момент.

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