我目前正在 ARMv7h 上的 archlinux 中测试 Mono。首先,我测试了这个简单的程序:
// test.cs
using System;
public class Test {
public static void Main(string[] args) {
Console.WriteLine("I'm working.");
}
}
我使用 Mono 作为通过 安装的本机包pacman
,而不是交叉编译。运行时,它的行为符合预期:
mcs test.cs
mono test.exe
I'm working.
当我尝试使用 捆绑这个程序集mkbundle
时,它编译时没有任何错误:
mkbundle --deps test.exe -o test_standalone
OS is: Linux
Sources: 1 Auto-dependencies: True
embedding: /home/minx/usb/cs/test.exe
embedding: /usr/lib/mono/4.5/mscorlib.dll
Compiling:
as -o temp.o temp.s
cc -ggdb -o test_standalone -Wall temp.c `pkg-config --cflags --libs mono-2` temp.o
Done
/usb/ 是已安装的外部 USB 驱动器。mkbundle
作为 root 调用。当我尝试运行结果二进制文件时:
./test_standalone
Native stacktrace:
Debug info from gdb:
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
并返回外壳。二进制文件不提供任何附加信息。我错过了这个特定架构的标志吗?