我在运行Linux的i.MX6机器上从GIT master分支构建mono。 我最初尝试了默认的打包版本,但发现它以其他奇怪的方式被破坏,并且缺少依赖项(即UiaDbusBridge.dll)。因此从源头构建。 请注意,我没有交叉编译。我在i.MX6主机上进行原生编译。
$ uname -a Linux linaro-alip 3.0.35-02855-g3fccb21 #1 SMP PREEMPT Thu Dec 12 12:48:08 MST 2013 armv7l armv7l armv7l GNU/Linux
当我运行 make -k check 时,会报告以下错误
* Assertion at mini-codegen.c:809, condition `i == sel' not met Stacktrace: Native stacktrace: Debug info from gdb: ================================================================= Got a SIGABRT while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= /bin/bash: line 13: 2943 Aborted ./mono-wrapper --compile-all --verify-all --security=verifiable $i /home/linaro/mono/mcs/class/lib/net_2_0/System.Windows.Forms.dll verification failed
其他所有内容似乎都相当合理,我编译并运行命令行应用程序就好了。 我也可以编译System.Windows.Forms应用程序,但是当试图运行它们时,表单会在关闭之前暂时打开并抛出以下错误
Fontconfig warning: ignoring C.UTF-8: not a valid language tag * Assertion at mini-codegen.c:809, condition `i == sel' not met Stacktrace: at at System.Windows.Forms.TextBoxBase.Draw (System.Drawing.Graphics,System.Drawing.Rectangle) at System.Windows.Forms.TextBoxBase.OnPaintInternal (System.Windows.Forms.PaintEventArgs) at System.Windows.Forms.Control.WmPaint (System.Windows.Forms.Message&) at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message&) at System.Windows.Forms.TextBoxBase.WndProc (System.Windows.Forms.Message&) at System.Windows.Forms.TextBox.WndProc (System.Windows.Forms.Message&) at System.Windows.Forms.Control/ControlWindowTarget.OnMessage (System.Windows.Forms.Message&) at System.Windows.Forms.Control/ControlNativeWindow.WndProc (System.Windows.Forms.Message&) at System.Windows.Forms.NativeWindow.WndProc (intptr,System.Windows.Forms.Msg,intptr,intptr) at System.Windows.Forms.XplatUIX11.DispatchMessage (System.Windows.Forms.MSG&) at System.Windows.Forms.XplatUI.DispatchMessage (System.Windows.Forms.MSG&) at System.Windows.Forms.Application.RunLoop (bool,System.Windows.Forms.ApplicationContext) at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext) at System.Windows.Forms.Application.Run (System.Windows.Forms.Form) at OrientationTester.Program.Main () at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) Native stacktrace: Debug info from gdb: ================================================================= Got a SIGABRT while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= Aborted
我该如何解决这个问题?所以我可以在这个平台上运行基于System.Windows.Forms的代码吗?