基本上,我想将现有项目中的一些常用功能分离到单独的库项目中,但是当我包含此库时,也允许项目保持跨平台。
我应该澄清,当我说"跨平台"我主要关注编译多个CPU架构(x86 / x86_64 / ARM)。
我在我的许多软件项目中使用了一些有用的功能。所以我认为在项目之间不断复制这些源代码文件是不好的做法,我应该从它们创建一个单独的库项目。
我认为静态库比共享库更适合我的需求。但是,我想到静态库将依赖于平台,并将其包含在我的项目中,这将导致这些项目也依赖于平台。这显然是包含源代码本身的缺点。
我有两种可能的解决方案:
包含为每个平台编译的静态库。
继续包含源代码。
我对上述两个选项都有所保留。备选方案1似乎过于复杂/浪费。选项2似乎是不好的做法,因为它可以用于"库"每个项目修改并变得不同步;特别是如果库源代码与所有其他项目源代码存储在同一目录中。
我真的很感激有关如何克服这个问题的任何建议,或者其他人之前如何解决这个问题的信息?
答案 0 :(得分:0)
您可以采用开源项目的标准方法(即使您的项目不是开源项目)。将有一个中心点可以获得源代码,可能是在修订控制下(颠覆,git ......)。任何想要使用该库的人都应该查看源代码,编译它(Makefile或类似的东西应该包括在内),然后它们都被设置好了。如果某人需要更改库中的某些内容,他们会这样做,测试他们的更改,并向您发送一个补丁,以便您可以将更改应用于项目(或不,取决于您对补丁的意见)。