C ++项目组织

时间:2011-08-28 17:38:33

标签: c++ eclipse projects-and-solutions project-organization

我已经成为共享库项目的维护者。该库被拆分为几个模块,每个模块都编译为静态库,然后链接在一起。 Eclipse用作IDE,存储在SVN服务器上的代码。到目前为止,构建过程是手工处理 - 构建库,将所有.a和.h移动到共享文件夹,然后构建共享库。代码需要为linux,ARM和windows编译。

问题在于我需要更多地分割当前模块,以便更好地进行测试(多个测试和示例简单程序,只有一个带有main的.cpp文件)和模块间代码共享(两者都有)模块A和B使用C,但我不想连接A和B)。这导致更复杂的依赖树,这将难以手工处理。我还需要能够构建一个项目的更多配置,可能链接到不同版本的依赖项目。

您将如何组织代码并设置开发环境?

编辑:DE需要具体的东西:

  1. 带GUI的IDE(我喜欢vim和shell,但其他人没有)
  2. 单独的项目,每个项目都创建静态库,要包含的标题集和示例程序
  3. 每个项目的不同配置,链接/包括不同版本和/或依赖项配置
  4. 代码完成和SVN支持

2 个答案:

答案 0 :(得分:0)

make和Makefile是建立和链接作业的既定且经过深思熟虑的方法,尤其是与automakelibtool结合使用时。这些工具可以很好地与SVN集成,也可能与Eclipse集成。

答案 1 :(得分:0)

所以我现在解决了。我创建了一个名为Pool的文件夹。目录树:

Pool
 - inc
    - arm
      - proj1 public headers directory
      - proj2 public headers directory
      - proj3 public headers directory
    - lin
      - proj1 public headers directory
      - proj2 public headers directory
      - proj3 public headers directory
    - win
      - proj1 public headers directory
      - proj2 public headers directory
      - proj3 public headers directory
 -lib
    - arm
      - libproj1.a
      - libproj2.a
      - libproj3.a
    - lin
      - libproj1.a
      - libproj2.a
      - libproj3.a
    - win
      - libproj1.a
      - libproj2.a
      - libproj3.a

使用makefile自动复制库。包括标题:

#include "proj1/someheader.h"

链接它:

-L${POOL}/lib/arm -lproj1

注意:注意-l 参数顺序。