3

我有一个看起来有点像这样的 Jamroot 文件;

project foo ;

alias bar ./src/path/to/bar//bar
build-project bar ;

总是给出恼人的错误

error: Unable to find file or target named
error:     '/foo//bar/'
error: referred from project at
error:     '.'

运行;

bjam --debug-building
building project Jamfile</home/chris/code/foo>  ('object(project-target)@163') with
{.. as above ...}

一点帮助都没有。

如果我将目录更改为文件夹并键入 bjam,则项目的该部分将完美构建。

作为一种解决方法,我有一个在所有文件夹中执行此操作的脚本,但我很想知道为什么“正确”的方式不起作用。

我正在使用以下版本的 bjam

bjam --version
Boost.Build V2 (Milestone 12)
Boost.Jam 03.1.16

非常感谢

4

1 回答 1

3

我发现我实际上并不需要这样做;简单地将子项目列为 Jamroot 中的别名就足以让 bjam 构建它们。

因此,构建项目步骤是不需要且错误的。

我还从Boost 构建参考页面中找到了这个;

构建项目;导致构建其他项目。此规则采用单个参数 - 相对于包含 Jamfile 的目录名称。当包含的 Jamfile 被构建时,位于该目录的项目也将被构建。目前,该规则的参数应该是目录名。不允许使用项目 ID 或一般目标引用。“(我的突出显示)

于 2012-02-07T19:26:29.360 回答