From: Vladimir Prus (ghost_at_[hidden])
Date: 2006-02-17 06:29:01


Hi Chris,

> I get the following error:
>
> <bjam output>
> C:/PROGRAMME/Boost/boost_1_33_1/tools/build/v2/build\virtual-target.jam:868
>: in virtual-target.register-actual-name from module virtual-target
> error: Duplicate name of actual target: <pbin\gcc\debug>a.cpp
.....
> local targets ;
> for local s in $(sources)
> {
> targets += [ new file-target
> [ utility.basename [ $(s).name ] ]

Sorry, I forgot one detail. Change this to:

             targets += [ virtial-target.register [ new file-target
                 [ utility.basename [ $(s).name ] ] ] ;

> import src ;
> my-converted-cpp my_processed : a.src b.src ;
> exe foo : my_processed ;

Here, 'my_processed' is built twice -- once because it's in Jamfile, and once
because it's used by 'foo'. Without 'register' you'll get two different
virtual targets that map to the same file, which leads to the above error.

- Volodya