Я пытаюсь встроить библиотеку Mono и MonoTouch в приложение для iPhone.У меня все работало, а затем что-то случилось на моей машине (обновление MonoTouch?), И теперь я не могу связать приложение при нацеливании на устройство.Для симулятора все в порядке, но я получаю более тысячи предупреждений и некоторые ошибки при настройке устройства.Библиотеки Mono, с которыми он пытается связать, являются неправильной архитектурой.
ld: warning: ARM function mono_aot_version not 4-byte aligned
ld: warning: ARM function mono_aot_full_aot not 4-byte aligned
ld: warning: ARM function mono_runtime_version not 4-byte aligned
ld: warning: ARM function mono_aot_assembly_name not 4-byte aligned
ld: warning: ARM function name_0 not 4-byte aligned
ld: warning: ARM function name_1 not 4-byte aligned
ld: warning: ARM function name_2 not 4-byte aligned
...
... lots of these warnings
...
ld: warning: ARM function name_53 not 4-byte aligned
ld: warning: ARM function name_54 not 4-byte aligned
ld: warning: ARM function name_55 not 4-byte aligned
ld: warning: ARM function name_56 not 4-byte aligned
ld: warning: ignoring file /Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmono.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file /Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/lib/libmonotouch.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7:
"_monotouch_setup_classmap", referenced from:
_monotouch_create_classes in registrar.o
"_mono_object_new", referenced from:
-[CalcEvaluator init] in CalcEvaluator.o
"_mono_aot_register_module", referenced from:
-[CalcEvaluator init] in CalcEvaluator.o
"_mono_jit_init", referenced from:
-[CalcEvaluator init] in CalcEvaluator.o
"_mono_runtime_object_init", referenced from:
-[CalcEvaluator init] in CalcEvaluator.o
"_mono_assembly_get_image", referenced from:
-[CalcEvaluator init] in CalcEvaluator.o
"_mono_assembly_open", referenced from:
-[CalcEvaluator init] in CalcEvaluator.o
"_mono_jit_set_aot_only", referenced from:
-[CalcEvaluator init] in CalcEvaluator.o
"_mono_class_from_name", referenced from:
-[CalcEvaluator init] in CalcEvaluator.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
Я предполагаю, что это как-то связано с не активацией MonoTouch.Я попытался переустановить MonoTouch и заново активировать MonoTouch.Ни один из них не повлиял на ошибки.
Другие флаги компоновщика
-ObjC -L/Developer/MonoTouch/SDKs/MonoTouch.$(PLATFORM_NAME).sdk/usr/lib -lmono -lmonotouch -all_load
Моно версия
$ mono -V
Mono JIT compiler version 2.6.7 (tarball Tue Aug 24 16:33:27 MDT 2010)
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Notification: Thread + polling
Architecture: x86
Disabled: none
MonoTouch Version
$ /Developer/MonoTouch/usr/bin/mtouch --version
mtouch 3.2.6.9797
Я могу взять этот же проект и собрать его на другом компьютере, и он будет построен, как и ожидалось.Любая помощь в отслеживании этого очень ценится.