1

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

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

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

编辑:我需要从 DE 获得的具体内容:

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

2 回答 2

0

make和 Makefile 是用于此类构建和链接作业的成熟且经过深思熟虑的方法,尤其是与automake和结合使用时libtool。这些工具与 SVN 完美集成,可能还与 Eclipse 集成。

于 2011-08-28T18:30:20.517 回答
0

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

水池
 - 公司
    - 手臂
      - proj1 公共头目录
      - proj2 公共头目录
      - proj3 公共标头目录
    ——林
      - proj1 公共头目录
      - proj2 公共头目录
      - proj3 公共标头目录
    - 赢
      - proj1 公共头目录
      - proj2 公共头目录
      - proj3 公共标头目录
 -lib
    - 手臂
      - libproj1.a
      - libproj2.a
      - libproj3.a
    ——林
      - libproj1.a
      - libproj2.a
      - libproj3.a
    - 赢
      - libproj1.a
      - libproj2.a
      - libproj3.a

这些库是使用 makefile 自动复制到这里的。包括标题:

#include "proj1/someheader.h"

链接它:

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

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

于 2011-09-04T12:50:28.030 回答