我在尝试使用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),所以我不确定这是否可能是问题的根源。
有人可以告诉我发生了什么事吗?
非常感谢你。
答案 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/