Gibt es ein Linux-Äquivalent von Windows-Ressourcendateien?
Ich habe eine C-Bibliothek, die Baue ich als shared object für Linux und eine DLL für Windows, mit MinGW32. Die API hängt an ein paar Dateien (statistische Modelle), die ich wirklich gerne roll in mit SO/DLL, so dass der Bereitstellung ist nur eine Datei.
Sieht es aus wie kann ich erreichen, das für Windows-mit einer "Ressourcen-Datei" kompiliert mit windres
aber dann hab ich zu schreiben Sie eine Reihe von Ressource-handling-code für Windows, und ich bin immer noch nicht mit den Dateien auf Linux.
Gibt es eine Möglichkeit, um die gleiche Funktionalität unter Linux?
Sogar besser, gibt es eine portable Lösung?
InformationsquelleAutor der Frage cibyr | 2010-01-04
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eigentlich ganz einfach auf Linux und anderen ELF-Systeme: http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967
OS X-bundles, so dass Sie nur bauen Sie Ihre Bibliothek als Rahmen und setzen Sie die Datei in das bundle.
InformationsquelleAutor der Antwort Andrew McGregor
Zwei mögliche Lösungen:
Phong Vo s sfio Bibliothek, die Teil des AT&T Advanced Software Technologie-toolset ist ein wunderbarer Ersatz für C
stdio.h
und es wird Ihnen erlauben, öffnen entweder im Datei-oder Speicher-Blöcke mit einem einzigen API. So können Sie ganz einfach konvertieren Sie Ihre vorhandenen Dateien in C initialisiert, die Daten in der DLL-oder SO-Datei.Dies ist eine gute cross-Plattform-Lösung, aber die Strafe ist, dass die Lernkurve für den Einstieg ist ziemlich hoch. Sie machen es nicht einfach, herauszufinden, wie Sachen arbeiten, oder nehmen Sie einen Teil Ihrer toolset und teilen Sie es heraus für den Einsatz unabhängig von den anderen teilen. Aber die gute Nachricht ist, dass, wenn Sie wollen, übernehmen Sie Ihre U/Win system für den Betrieb der Unix-codes, die auf windows (alle Teil der gleichen toolset), können Sie DLLs erstellen und SOs mit dem gleichen system.
Für diese Art von problem, das ich oft zurück fallen auf Lua; ich kann die gespeicherte Lua-Daten in externen Dateien oder in C als Daten initialisiert. Dies ist ideal für die Verteilung, alles in einem .also Datei; ich mache das für meine Studenten.
Wieder der Nachteil ist, dass Sie auf master und die Einführung einer neuen Technologie.
In meiner eigenen Arbeit verwende ich Lua über die AT&T stuff aus diesen Gründen:
Lua hat eine viel kleinere Stellfläche und ist entworfen, um gut mit anderen spielen; mit AST, Sie haben wirklich zu eigen machen Ihren Weg, Dinge zu tun.
Die Lernkurve mit Lua ist viel weniger steil; Sie können produktiv sein, sehr schnell.
Lua ist kinderleicht zu installieren und es ist einfach, um Informationen zu erhalten. AST hat seine eigene skurrile installation, die gemeinsam von niemand sonst in der Welt; es ist oft schwer die installation zu arbeiten; und es ist schwieriger, an Informationen zu erhalten.
Mithilfe von Lua hat viele andere Belohnungen, so dass die Mühe, die das lernen von Lua und lernen, wie zu integrieren Lua in C-codes ist einfach zu amortisieren, über mehrere Projekte.
InformationsquelleAutor der Antwort Norman Ramsey