Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-08-24 01:50:50


Toon Knapen wrote:

> > lib $(libs) : : <search>$(SYS_LIB_PATH) ;
> > exe my_app : my_source.cpp $(libs) ;
> >
> > When the 'lib' rule is invoked with no sources (meaning it's searched
> > library), several names are ok.
>
> OK, thanks. How can I now force all my exe's to link with all 'libs'

> lib $(LIBS) : : <search>$(LIB_PATH) ;
>
> project
>
> : requirements
>
> <include>$(INCLUDE_PATH)
> <library>$(LIBS)
...
> But bjam now gives me following error :
>
> error: Unable to find file or target named
> error: 'readline'
> error: referred from project at
> error: '../../../modules/utilities/test'

I presume '../../../modules/utilities/test' is NOT the same project where you
add $(LIBS) to requirements? Because the following works for me:

lib a ;

project
: requirements <library>a
;

exe hello : hello.cpp ;

I think the problem is that when you have a child project the <library>a is
inherited without change, but the child project does not have any target
named 'a'.

I'd suggest to workaround this using:

lib a ;

project foobar
: requirements <library>/foobar//a
;

To make sure child can always access the library.

HTH,
Volodya

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk