有没有办法编译跨平台库以使用单个文件在所有平台上工作?
那么我主要(仅?)看到的是Windows使用DLL和其他平台各自使用不同的文件。
为什么这些不标准化?是否有可以使用的标准格式?如果不是这可以伪造?
对于多个问题感到抱歉,但回答一个问题会导致其他问题无效。
答案 0 :(得分:1)
库包含已编译的代码,这些代码实际上特定于平台的体系结构。由于大型机器架构之间没有标准协议,不幸的结果是这些库不能跨平台移植。
最好的方法是开源代码,让用户在他们想要的平台上编译代码。
第二个最佳选择是采用Java方式。以包含类文件的jar文件的形式分发您的库。并让用户为他们的平台安装正确的JRE。
不幸的是,我不知道任何其他选择。
答案 1 :(得分:0)
IDK为什么目标文件不是标准化的(尽管你可以使用GCC进行交叉编译),但目前唯一可行的保证跨平台解决方案是源码(据我所知)。例如,CImg作为单个头文件(40kb)发布,但它有一些依赖性,它需要后端图像处理库/工具链。虽然我不太确定,但也许有跨平台的静态对象格式。