如何在C中构建和链接外部跨平台库?

时间:2015-05-10 01:46:44

标签: c build linker cross-platform

我对C比较陌生,我正在制作一个我希望跨平台的项目。我想使用一个已经宣誓成为跨平台的外部库。我想知道如何在项目中加入这个内容?

据我所知,我有两种选择。在我希望使用的每个平台上预先构建库,然后处理在我的构建过程中链接的库(不是非常独立于平台)。或者我可以包含整个库的源代码并将其与我的项目一起构建。

这些是我处理跨平台库的唯一选择吗?也许我不明白这个过程是如何完成的,所以任何帮助都会很棒!

(PS我正在使用CMake构建我的项目。)

谢谢!

1 个答案:

答案 0 :(得分:0)

有几个因素及其组合可能会影响答案。

  • 外部库可以是静态的,也可以是共享的。
  • 构建用于内部测试或发布。
  • 具有autoconf内容的应用程序源代码是分布式的或二进制应用程序是分发的。
  • 分发具有自己的autoconf内容的外部库源代码或分发二进制共享库。

如果要分发二进制应用程序,则最好使用静态外部库。在这种情况下,您只有上面写的选项。您可以为每个平台预先构建库,也可以将库构建合并到构建过程中。

如果外部库和应用程序是开源的,并且它们使用自己的autoconf内容进行分发,那么您不需要分发外部库,只需添加autoconf依赖项。