在ARM(i.MX6)上构建时,Mono system.windows.forms失败测试

时间:2014-07-08 00:23:35

标签: c# winforms mono arm embedded-linux

我在运行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的代码吗?

1 个答案:

答案 0 :(得分:0)

没关系,经过一周的搜索和玩耍后,我发现已经有了一个错误。 https://bugzilla.xamarin.com/show_bug.cgi?id=20239