Boost logo

Boost :

Subject: Re: [boost] [filesystem][iostreams][program_options] linker issues on msvc
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2009-11-21 04:20:57


Alexander Arhipenko wrote:

> Guys,
>
> We use boost.build not only for building boost but also to create own
> binary packages. For a long time I observe linker errors on msvc due
> to lack of usage requirements in Jamfile's.
> Issue is reproduced when somebody builds executable like this:
>
> exe foo : main.cpp /boost/filesystem ; #or /boost/program_options or
> /boost/iostreams
>
> Following trivial patch resolves these issues:
>
>
> Index: libs/program_options/build/Jamfile.v2
> ===================================================================
> --- libs/program_options/build/Jamfile.v2 (revision 57802)
> +++ libs/program_options/build/Jamfile.v2 (working copy)
> @@ -1,6 +1,9 @@
>
> project boost/program_options
> :
> + usage-requirements
> + <link>shared:<define>BOOST_PROGRAM_OPTIONS_DYN_LINK=1
> + :
> source-location ../src
> ;
>
> @@ -17,4 +20,4 @@
> <link>shared:<define>BOOST_PROGRAM_OPTIONS_DYN_LINK=1 # tell
> source we're building dll's
> ;
>
> Index: libs/filesystem/build/Jamfile.v2
> ===================================================================
> --- libs/filesystem/build/Jamfile.v2 (revision 57802)
> +++ libs/filesystem/build/Jamfile.v2 (working copy)
> @@ -11,6 +11,7 @@
> project boost/filesystem
> : source-location ../src
> : usage-requirements # pass these requirement to dependents (i.e. users)
> + <library>/boost/system
> <link>shared:<define>BOOST_FILESYSTEM_DYN_LINK=1
> <link>static:<define>BOOST_FILESYSTEM_STATIC_LINK=1
> ;

Alexander,
do you actually need the above patch? Because boost.filesystem has boost.system
in sources, you should not need to add it to usage requirements.

Could you clarify?

I have checked in two other changes in your patch. Thanks!

- Volodya


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk