【问题标题】:Anybody cross compiled Mono for MIPS 64 using uClibc?有人使用 uClibc 为 MIPS 64 交叉编译 Mono 吗?
【发布时间】:2010-10-20 13:40:24
【问题描述】:

我正在尝试为 MIPS 静态交叉编译 Mono。我能够编译 Mono,但它总是与它的依赖项动态链接,即使我为编译器指定了静态。

我写了一个测试程序,我可以用我的工具链静态编译它并在目标平台上运行它。我不确定我是否遗漏了某些东西,或者这是不可能的。我使用buildroot 构建了我的工具链。

编辑

为了让事情更清楚一点,我想用它的依赖项静态编译单声道。 mono 依赖的依赖项是:GLib、pkg-config 和 gettext。我相信 GLib 是直接依赖,而 GLib 依赖于 pkg-config 和 gettext。

如果需要,我可以发布我的环境变量和配置命令。

【问题讨论】:

    标签: mono mips embedded-linux uclibc


    【解决方案1】:

    为了获得一个完全静态链接的 Mono,您必须首先将它的所有依赖项(及其递归依赖项)构建为静态库。只有这样,您才能构建真正静态的 Mono。

    【讨论】:

    • 我担心这可能是答案。在 buildroot 中,我选择了 mono 依赖的包来构建工具链,所以它们会在工具链的 lib 和 bin 文件夹中进行链接。我只是不想在没有其他人有同样想法的情况下经历这个过程。我会试一试并报告步骤。
    【解决方案2】:

    嗯,我已经有一段时间没有尝试这个了,但我想报告我学到的东西。一方面,我发现 MIPS 处理器是 64 位的,而不是 32 位的,就像我最初告诉我的目标嵌入式设备一样。其次,当我研究这个时,Mono 还没有 MIPS 64 位支持。经过一番研究,我看到N-iX 的一个小组正在移植 Mono 以支持基于已经完成的 32 位端口的 MIPS 64 位架构。 64 位端口正在为一家名为SiCortex, Inc. 的公司完成,N-iX 正试图将他们的补丁应用到主要的 Mono 开发主干。您可以查看此forum thread 了解更多信息。我发帖说我想帮助测试,但我没有得到回复。

    就静态编译 Mono 而言,我了解到 Mono 使用 libtool 将其库链接在一起。在尝试静态编译之前,我需要了解有关此工具的更多信息。在得知 Mono 还不支持 MIPS 64 位后,我停下了脚步。我还需要看看 64 位端口补丁是否曾经应用于 Mono。

    我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      在最近的一个 stackoverflow 播客中,Miguel 说他们将 Mono 移植到 iPhone,我认为使用了很多静态。虽然不是 64 位,但它表明可以对 Mono 做一些讨厌的事情。

      【讨论】:

      • 他们所做的是静态编译一个 .NET 应用程序,它有很多缺点。接近我正在寻找的东西,但不完全是。我正在寻找静态编译 Mono 运行时。这将消除静态编译 .NET 应用程序的需要,因为运行时将可用。
      猜你喜欢
      • 2012-08-13
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2019-01-18
      • 2018-05-31
      • 2017-08-29
      • 1970-01-01
      相关资源
      最近更新 更多