Boost logo

Boost-Build :

From: Toon Knapen (toon.knapen_at_[hidden])
Date: 2004-04-28 11:34:25

Rene Rivera wrote:

> Toon Knapen wrote:
>>I have a dynamic library 'bar' that calls MPI routines (or whatever
>>third party library) that are defined in a static library. Now my
>>executable 'foo' calls a function defined in 'bar' and also calls MPI
>> foo.exe ----calls----> ----calls-----> MPI (mpich.a, pmpich.a)
>> | ^
>> |---------------------------------------------
> In your small example I do have a question... Why do you add the MPI
> dependency to the foo.exe instead of adding it to the, which is
> the one that has the real requirement? Doing that instead would solve
> the link order problem in this case.

I thought about doing this. This would mean that the mpi functions are
defined in as well. So when linking foo.exe with and
libmpich.a I was afraid to have multiple defines or blowing up the size
of the exe. But probably my fear is unjustified since the linker will
just drop the second (and up) definition of the MPI function. right ?

However this is not a real clean solution IMO because suppose that I
create but somebody else uses my and links foo.exe. Now my contains (part of) the MPI library definitions. If somebody else
now links with _and_ links with the MPI libraries installed on
_his_ machine, he's possibly linking the application with 2 different
versions of the MPI libaries which might result in strange behaviour.


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at