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 に答える