2009-04-20 15 views
5

Ich versuche, Mono für MIPS statisch zu kompilieren. Ich bin in der Lage, Mono zu kompilieren, aber es ist immer dynamisch mit seinen Abhängigkeiten verknüpft, obwohl ich den Compiler statisch spezifiziere.Jemand hat Monos für MIPS 64 mit uClibc kompiliert?

Ich habe ein Testprogramm geschrieben und kann es statisch mit meiner Toolchain kompilieren und auf der Zielplattform ausführen. Ich bin mir nicht sicher, ob mir etwas fehlt oder ob es nicht möglich ist. Ich habe meine Toolchain mit buildroot erstellt.

EDIT

Um die Dinge ein wenig klarer zu machen, würde ich statisch wie Mono kompilieren damit Abhängigkeiten ist. Die Abhängigkeiten, auf denen mono beruhen, sind: GLib, pkg-config und gettext. Ich glaube GLib ist eine direkte Abhängigkeit und GLib hängt von pkg-config und gettext ab.

Ich kann meine Umgebungsvariablen posten und den Befehl bei Bedarf konfigurieren.

Antwort

1

Nun, es ist schon eine Weile her, dass ich das versucht habe, aber ich wollte berichten, was ich gelernt habe. Zum einen habe ich herausgefunden, dass der MIPS-Prozessor 64-Bit und nicht 32-Bit ist, wie ich ursprünglich für das eingebettete Gerät, auf das ich ausgerichtet war, gesagt hatte. Zweitens, als ich daran arbeitete, hatte Mono noch keine MIPS 64-Bit-Unterstützung. Nach ein wenig Nachforschung sah ich, dass eine Gruppe um N-iX Mono portierte, um die 64-Bit-MIPS-Architektur basierend auf dem 32-Bit-Anschluss zu unterstützen, der bereits ausgeführt wurde. Der 64-Bit-Port wurde für eine Firma namens SiCortex, Inc. erstellt, und N-iX versuchte, ihre Patches auf die Haupt-Mono-Entwicklungstrunks zu übertragen. Sie können diese forum thread für weitere Informationen überprüfen. Ich gab an, dass ich beim Testen helfen wollte, aber ich bekam nie eine Antwort.

Soweit statisch kompilieren Mono, lernte ich, dass Mono libtool für die Verknüpfung seiner Bibliotheken verwendet. Ich werde mehr über dieses Werkzeug lernen müssen, bevor ich versuche, statisch zu kompilieren. Ich hörte auf zu lernen, dass Mono MIPS 64-bit noch nicht unterstützt. Ich werde auch sehen müssen, ob die 64-Bit-Port-Patches jemals auf Mono angewendet wurden.

Ich hoffe, das hilft.

1

Um ein vollständig statisch verknüpftes Mono zu erhalten, müssen Sie alle Abhängigkeiten (und ihre Abhängigkeiten rekursiv) als statische Bibliotheken zuerst erstellen. Nur dann können Sie ein wirklich statisches Mono bauen.

+0

Ich hatte Angst, das könnte die Antwort sein. In buildroot habe ich die Pakete ausgewählt, auf denen mono basiert, um mit der Toolchain erstellt zu werden, so dass sie sich zum Verknüpfen in den Ordnern lib und bin der Toolchain befinden. Ich wollte einfach nicht durchgehen, ohne dass jemand anders gleich dachte. Ich werde es versuchen und die Schritte zurückmelden. –

0

Auf einem der stackoverflow Podcasts vor kurzem sagte Miguel, dass sie Mono zu iPhone portierten, mit vielen statischen, denke ich. Es ist zwar nicht 64-Bit, aber es zeigt sich, dass Monster monströs sind.

+0

Was sie getan haben, war statisch eine .NET-Anwendung kompilieren, die mit vielen Drawbacks kommt. In der Nähe von dem, was ich suche, aber nicht ganz. Ich möchte die Mono-Laufzeitumgebung statisch kompilieren. Dies würde die Notwendigkeit zur statischen Kompilierung einer .NET-Anwendung unnötig machen, da die Laufzeit verfügbar sein wird. –