From: Trevor Taylor (gclbb-jamboost_at_[hidden])
Date: 2003-06-05 17:27:28
> Hmm.. could you tell more. What compiler is used (The code above assumes gcc).
> On what system.
OK, sorry for the delay...
I'm using MinGW on Windows 2000:
Reading specs from c:/MinGW/bin/../lib/gcc-lib/mingw32/3.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as
--host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads
--disable-nls --enable-languages=f77,c++,objc,ada --disable-win32-registry
Thread model: win32
gcc version 3.2 (mingw special 20020817-1)
(Note that cygwin gcc version 3.2 20020927 (prerelease) links OK.)
> The fact that boost_regex.dll appears twice is natural: all
> libraries appear twice. It's a workaround for the fact that gcc is sensitive
> to the order libraries are specified.
> This never caused any problems with gcc on Linux, and, morever, we have a test
> for prebuilt libraries which works everywhere, so more details are needed.
> Probably, the dll is built somehow wrong, though I don't know why.
In my experience most compilers are sensitive to the order. Also
the order and repetition required depends on whether shared or
archive libraries are linked in. The only feasable way to
handle libraries in a build system (I think) is to allow the
user to specify exactly the order and repetition they want. (Sometimes
other flags are interleaved with libraries in a specific order too :-(
(As far as library order and repetition goes... that's the way it is
unfortunately. I don't like it either, and I always organize my code so
no repetition is required, and the order is obvious. But I'm not
surprised when I turn up to start a job and find a -lxxx list as long as
my arm with various libraries duplicated in seemingly random order. It
smacks of bad organisation, but it's not something that you can
typically change easily (technically or politically) :-(
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