相对工作区

当被另一项目使用时,相对子项目将驻留在父项目的工作区内(如同子目录)。由于性能原因必须将代码整理到子目录,或者如果您的 makefile 或工具被编写为使用相对路径,那么该操作很有用。

以下示例显示了先前示例中显示的相同项目的工作区,除了 bar-1 子项目是相对工作区,而非绝对工作区。

For Windows以下输出显示 Windows 工作区:
c:\ccm_wa\ccm_tools
    foo-1\
        foo\
            a.c
            b.c
            bar\
                c.c
For UNIX以下输出显示 UNIX 工作区:
/users/joe/ccm_wa/ccm_tools
    foo-1\
        foo\
            a.c
            b.c
            bar\
                c.c

只可以将相对子项目用作子项目一次,原因是该相对子项目驻留在父项目的工作区中,并且只能同步到一个位置。如果想在多个位置中使用相对项目,那么必须使用该项目的多个版本。

缺省情况下,Windows 和 UNIX 客户机上的项目在创建时都是绝对项目。如果检出项目的新版本,那么仅当从相对项目检出工作区时,新工作区的版本才为相对。否则,即为绝对。

如果项目层次结构中的 makefile 通过相对路径引用子项目的成员(就如同子项目是子目录),或无法使用指向子项目目录的符号链接,那么必须保持项目的相对性。如果项目层次结构中的 makefile 引用子项目中的成员(就如同子项目是完全不相关的目录结构),那么子项目可以为绝对。

可以更改 makefile 以使用相对或绝对项目,或是两者的组合。或者,可以将子项目设置为相对或绝对项目,以便现有 makefile 可以识别工作区目录结构。


反馈