Получение: «Компиляция завершена с кодом 134» при попытке использовать переключатель «Оптимизирующий компилятор LLVM» - PullRequest
4 голосов
/ 03 мая 2011

Я получаю сообщение «Компиляция завершена с кодом 134» при попытке использовать переключатель «LLVM Optimizing Compiler» для выпуска сборок iPhone с использованием MonoTouch 4.0.1.

Я не получаю много информациииз окна вывода сборки вообще - просто:

"Компиляция завершена с кодом 134, команда:" MONO_PATH = (snip) /bin/iPhone/Release/LSiOS.app / Developer / MonoTouch / usr /bin / arm-darwin-mono --llvm --aot = mtriple = armv7-darwin, nimt-trampolines = 2048, полный, статический, asmonly, нодбаг, llvm-path = / разработчик / MonoTouch / LLVM / bin /, outfile =/var/folders/03/033pAAGuHgGkIy4CorbVV++++TI/-Tmp-/tmp38107451.tmp/Newtonsoft.Json.MonoTouch.dll.7.s "(snip) /bin/iPhone/Release/LSiOS.app/Newtonsoft.Json.MonoTouch.dll "Mono Ahead of Time компилятор - сборка сборки (фрагмент) /mscorlib.dll

Странно то, что в более ранних командных строках существует корреляция между DLL, упомянутой вКомандная строка arm-darwin-mono и что такое компиляция, но в этом случае она говорит "mscorlib.dll".

Есть мысли?

Ответы [ 3 ]

2 голосов
/ 04 августа 2011

Я обнаружил несколько случаев (поиск в Google и bugzilla.xamarin.com), где код ошибки 134 связан с слишком агрессивным Mono.Linker (удаление чего-то необходимого).

Это легко подтвердить, отключив компоновщик, т. Е. " Не связывать " в настройках компоновщика.Если сборка работает, вы можете попробовать изолировать сборку, в которой компоновщик допустил ошибку.

Например, добавьте « - linkskip = mscorlib » к дополнительным параметрам mtouch и снова включите связывание.,Это свяжет все (Link All) или все SDK (Link SDK сборки), кроме выбранной вами сборки (в примере mscorlib).Это всего лишь обходной путь, и необходимо заполнить отчет об ошибке, чтобы проблема могла быть исправлена ​​надлежащим образом (и вы получите все преимущества компоновщика).

Однако следует помнить, что существуют другие проблемы, имеющие общий код ошибки, например:http://ios.xamarin.com/Documentation/Troubleshoot#Error_134.3a_mtouch_failed_with_the_following_message.3a

ГММВ

1 голос
/ 31 июля 2011

У меня была точно такая же проблема, Сколесток. Мое приложение работало нормально до тех пор, пока я не включил llvm, тогда это было «Компиляция завершена с кодом 134, команда» при попытке собрать 7 для самого приложения.

Я рад сказать, что после 2 дней кропотливого приведения моего приложения к основной проблеме я смог изолировать проблему от использования встроенных словарей, таких как:

Dictionary<enum, Dictionary<enum, value>>

Мне удалось это исправить, определив класс для встроенного словаря и использовав его вместо этого:

public class MyDefinition : Dictionary<enum, value>
{
}

...

public Dictionary<enum, MyDefinition>

Не уверен, поможет ли это вам, но, надеюсь, это поможет какой-то бедной душе, которая решит использовать встроенные словари и столкнется с той же проблемой.

1 голос
/ 16 июля 2011

mtouch выполняет свои собственные сборки параллельно, поэтому журналы могут сбивать с толку, например вы можете увидеть немного выходных данных сборки X, а затем вывод некоторых сборок Y.

Чтение полного журнала может помочь вам (или нам) точно определить проблему.

...