gibt es sowas wie .dll oder .so, aber plattformübergreifend?Gibt es sowas wie .dll oder .so, aber plattformübergreifend?
Antwort
Es ist nicht klar, was Sie fragen, aber wenn Sie fragen "Wie kann ich dynamisch ladbar C/C++ Bibliotheken in einer plattformübergreifenden Weise machen", dann ist die Antwort GNU Libtool. Es hat Unterstützung für den Aufbau und den Verbrauch von ihnen, plus Runtime-Support-Funktionen
nicht für c/C++ AFAIK, Java hat .jar-Dateien, die eine Art analog sind.
Java .class-Dateien und .jar-Archive erfüllen diese Anforderung ebenso wie .NET-Assemblys, die unter Mono ausgeführt werden.
Sie erfüllen nicht wirklich die Voraussetzung für eine Vielzahl von Gründen - er fragt nicht, ob es Sprachen gibt, die eine Übersetzungseinheit haben, die Architektur und Herstellerunabhängigkeit ist:/Sie sollten solche kühnen Totalitäten nicht ohne Disclaimer angeben. –
Die Frage lautet: "Gibt es etwas wie ...". Ich denke, dass das oben genannte "Anforderung" ziemlich gut passt. Ich spreche nicht über Sprachen in den oben genannten. Ich spreche von Plattformen (JVM oder .Net) –
Ein universelles ausführbares Format?
Das ist der ganze Grund für die Existenz von virtuellen Maschinen (Java) oder IL (.Net) - also kann der gleiche Quellcode in eine universelle Zwischensprache übersetzt werden, die dann vom Framework in der zugrunde liegenden System-Bytecode, ohne dass der Programmierer die Unterschiede zwischen den Systemen kennen muss.
In der Praxis muss die VM auf allen Plattformen konsistent implementiert werden.
Wie andere erwähnt haben, nicht wirklich. Vielleicht wird LLVM eines Tages die Lücke überbrücken und es uns erlauben, LLVM-Äquivalente zu betrachten, wie wir es mit statischen/dynamischen Objektbibliotheken tun.
Werfen Sie einen Blick auf this reply aus einigen der Gründe, warum statische Objektbibliotheken in der Regel nicht tragbar sind. Ich sage generell, weil manchmal - wenn die OS-Anbieter genug kümmern - es möglich ist - wie freebsd Linux-Binärdateien auszuführen, oder WINE einen großen Teil der Win32-Laufzeit implementiert.
Binäre Objektdateien sind fast immer an eine bestimmte Plattform gebunden. Wie andere bereits gesagt haben, sind die Objektdateiformate, die der Plattformunabhängigkeit am nächsten kommen, möglicherweise .NET/Mono-Assemblies und Java-Bytecode.
Das heißt, wenn Sie echte Plattform Unabhängigkeit wollen, könnten Sie am besten mit Quellcode (wenn das eine Option ist). Ich weiß, dass dies nicht das ist, was Sie fragen, aber bedenken Sie, dass Sie heutzutage ein C++ - Programm auf den meisten Computern (z. B. mit der GNU Compiler Collection) kompilieren können, wenn Ihr C++ - Code selbst plattformunabhängig ist.
- 1. Gibt es sowas wie .table?
- 2. Gibt es sowas wie DaysInMonth für Elixier?
- 3. Gibt es in Haskell sowas wie Unterwächter?
- 4. Gibt es sowas wie Inotify unter Windows?
- 5. Gibt es sowas wie vkCmdBlitImage für D3D12?
- 6. Gibt es sowas wie npmjs für Scala/Java
- 7. Gibt es sowas wie go-eldoc-mode für Emacs?
- 8. Gibt es DLL oder DLL-ähnliche Konzepte in Android?
- 9. gibt es sowas wie C++ const in C#?
- 10. Gibt es in Action Script 3 sowas wie printf?
- 11. Gibt es sowas wie .NET's T4 für Java?
- 12. Gibt es sowas wie std :: tie für std :: pair?
- 13. Gibt es php7 Druckererweiterung/dll?
- 14. Gibt es sowas wie Linux ptrace syscall in Windows XP/2003?
- 15. Bluetooth LE App, wie man es plattformübergreifend baut (iOS-Android)?
- 16. ansible: Gibt es sowas wie with_fileglobs für Dateien auf dem entfernten Rechner?
- 17. Java FMJ ist nicht plattformübergreifend? Wie kann es behoben werden?
- 18. Gibt es so etwas wie "Unicode-Sortierung"?
- 19. Gibt es so genannte Self-Running-Anwendungen?
- 20. Gibt es so etwas wie XML 2.0?
- 21. VBA - Gibt es so etwas wie Listen?
- 22. Paginieren Sie so oder gibt es einen besseren Algorithmus?
- 23. DllNotFoundException, aber DLL ist da
- 24. Ist SQLite wirklich plattformübergreifend?
- 25. App entwickeln, um nativ zu laufen oder plattformübergreifend zu arbeiten?
- 26. Tupel auspacken oder so wie es ist?
- 27. Behandlung von C++ - Abhängigkeiten (plattformübergreifend)
- 28. iOS- und OSX-Dokumentpakete plattformübergreifend
- 29. Gibt es eine Möglichkeit, jQuery-Funktionen dynamisch aus einer .NET-DLL oder -Klassenbibliothek aufzurufen?
- 30. Gibt es eine Möglichkeit, eine DLL-Version zu erzwingen?
ich bin nicht gemeint Binärkompatibilität – SomeUser
gut die Starrheit der DLL und SO (Binärkompatibilität) ist, was bewirkt, dass sie starke Semantik und große Schwächen haben. Was genau willst du fragen? –
Ich meinte: Programm und jeder DLL-Compiler für jede Plattform – SomeUser