Больше не может связывать встроенное приложение MonoTouch для iPhone - PullRequest
1 голос
/ 22 марта 2011

Я пытаюсь встроить библиотеку 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

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

1 Ответ

2 голосов
/ 22 марта 2011

4.3 SDK не позволяет связывать библиотеку armv6 с приложением armv7. Либо измените ваше приложение на предназначенное только для armv6, либо обновите до MonoTouch 4.

...