在Mono中使用mkbundle交叉编译问题

时间:2017-02-14 15:33:49

标签: c# mono cross-platform mkbundle

我在尝试使用mkbundle工具在Mono Linux上使用新的交叉编译/链接功能时遇到了一些问题。 我在Intel x86环境中使用Linux Mint 14.04 32位,我想使用mkbundle为64位平台创建一个静态二进制文件。 作为参考,我使用Mono,版本4.6.2

mc@Carles-nix ~ $ mono --version
Mono JIT compiler version 4.6.2 (Stable 4.6.2.16/ac9e222 Tue Jan  3 11:57:29 UTC 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  x86
    Disabled:      none
    Misc:          softdebug 
    LLVM:          supported, not enabled.
    GC:            sgen

根据文档我需要首先拥有目标目标文件,所以我尝试从服务器获取它:

mc@Carles-nix ~ $ mkbundle --fetch-target 4.6.1-linux-libc2.12-amd64 --target-server https://download.mono-project.com/runtimes/raw/
Downloading runtime https://download.mono-project.com/runtimes/raw/4.6.1-linux-libc2.12-amd64 to /home/mc/.mono/targets/4.6.1-linux-libc2.12-amd64/mono
Failure to download the specified runtime from https://download.mono-project.com/runtimes/raw/4.6.1-linux-libc2.12-amd64
mc@Carles-nix ~ $ 

但是你可以注意到,无论我尝试下载什么文件,我总会得到同样的错误。

我注意到我的版本没有文件(4.6.2),所以我不确定这是否可能是问题的根源。

有人可以告诉我发生了什么事吗?

非常感谢你。

2 个答案:

答案 0 :(得分:1)

对我来说,我需要添加.zip来下载目标:

mkbundle --fetch-target mono-4.8.0-ubuntu-16.04-x86.zip

除了在--cross选项上添加.zip。

答案 1 :(得分:0)

以防任何人需要答案: 我已经联系过Mono Project的人员,他们的服务器似乎有问题,所以他们建议我使用备用服务器:

$ mkbundle --fetch-target 4.6.1-linux-libc2.12-amd64 --target-server https://mono-project.azureedge.net/runtimes/raw/