Is there something like .dll or .so, but cross-platform?
is there s开发者_C百科omething like .dll or .so, but cross-platform?
Java .class files and .jar archives will fulfil this requirement, as will .Net assemblies running under Mono.
A universal executable format? No.
That's the whole reason for the existence of virtual machines (java) or IL (.Net) - so the same source code can be compiled into a universal intermediate language, that can then be executed by the framework in the underlying system bytecode without the programmer having to know the differences between the systems.
In practice, the VM has to be consistently implemented on all platforms.
not for c/c++ AFAIK, java has .jar files that are sort of analogous though.
It's not clear what you are asking, but if you are asking "how can I make dynamically loadable C/C++ libraries in a cross-platform manner," then the answer is GNU Libtool. It has support for building and consuming them, plus runtime support functions
As others have mentioned, not really. Perhaps LLVM will one day bridge the gap allowing us to look at LLVM equivalents as we do static/dynamic object libraries.
Take a look at this reply for some of the reasons why static object libraries aren't generally portable. I say generally because sometimes -- if the OS vendors care enough -- it is possible -- like freebsd executing linux binaries, or WINE implementing a large part of the win32 runtime.
精彩评论