【发布时间】:2013-09-30 22:44:10
【问题描述】:
有没有办法编译一个跨平台库以使用单个文件在所有平台上工作?
所以我主要(仅?)看到的是 Windows 使用 DLL,而其他平台各自使用不同的文件。
为什么这些没有标准化?是否有可以替代使用的标准格式?如果不是,这可以伪造吗?
很抱歉有多个问题,但回答一个问题会使其他问题无效。
【问题讨论】:
标签: c++ dll cross-platform libraries
有没有办法编译一个跨平台库以使用单个文件在所有平台上工作?
所以我主要(仅?)看到的是 Windows 使用 DLL,而其他平台各自使用不同的文件。
为什么这些没有标准化?是否有可以替代使用的标准格式?如果不是,这可以伪造吗?
很抱歉有多个问题,但回答一个问题会使其他问题无效。
【问题讨论】:
标签: c++ dll cross-platform libraries
库包含编译后的代码,这实际上是特定于平台架构的。由于大玩家之间在机器架构上没有标准协议,不幸的结果是库不能跨平台移植。
最好的办法是开源代码,让用户在自己想要的平台上编译代码。
第二个最佳选择是采用 Java 方式。以包含类文件的 jar 文件的形式分发您的库。并让用户为他们的平台安装正确的 JRE。
很遗憾,我不知道有任何其他选择。
【讨论】:
IDK 为什么目标文件是标准化的(尽管您可以使用 GCC 进行交叉编译 afaik),但目前唯一可行的有保证的跨平台解决方案是源代码(据我所知)。例如 CImg 作为单个头文件 (40kb) 发布,但它有一些依赖项,它需要后端图像处理库/工具链。虽然我不太确定,但也许有跨平台的静态对象格式。
【讨论】: