跨平台库

时间:2014-05-18 09:51:15

标签: c cross-platform static-libraries

基本上,我想将现有项目中的一些常用功能分离到单独的库项目中,但是当我包含此库时,也允许项目保持跨平台。

我应该澄清,当我说"跨平台"我主要关注编译多个CPU架构(x86 / x86_64 / ARM)。

我在我的许多软件项目中使用了一些有用的功能。所以我认为在项目之间不断复制这些源代码文件是不好的做法,我应该从它们创建一个单独的库项目。

我认为静态库比共享库更适合我的需求。但是,我想到静态库将依赖于平台,并将其包含在我的项目中,这将导致这些项目也依赖于平台。这显然是包含源代码本身的缺点。

我有两种可能的解决方案:

  1. 包含为每个平台编译的静态库。

  2. 继续包含源代码。

  3. 我对上述两个选项都有所保留。备选方案1似乎过于复杂/浪费。选项2似乎是不好的做法,因为它可以用于"库"每个项目修改并变得不同步;特别是如果库源代码与所有其他项目源代码存储在同一目录中。

    我真的很感激有关如何克服这个问题的任何建议,或者其他人之前如何解决这个问题的信息?

1 个答案:

答案 0 :(得分:0)

您可以采用开源项目的标准方法(即使您的项目不是开源项目)。将有一个中心点可以获得源代码,可能是在修订控制下(颠覆,git ......)。任何想要使用该库的人都应该查看源代码,编译它(Makefile或类似的东西应该包括在内),然后它们都被设置好了。如果某人需要更改库中的某些内容,他们会这样做,测试他们的更改,并向您发送一个补丁,以便您可以将更改应用于项目(或不,取决于您对补丁的意见)。