Thanks Merrill,
       i'm actually using scons, not make... and I didn't code that part, so I'll have to look at it.  Is the problem not the extensions (.dll/.lib vs .so/.a)?  Why didn't boost name them properly when I specified mingw? 

Thanks,
Imran

On 12/15/05, Merrill Cornish <merrill.cornish@earthlink.net> wrote:
Imran,

I've using Boost 1.33.0 with the latest MinGW on Windows XP, and it works fine.

Could you be a bit more specific as to why MinGW "can't use" the Boost libraries?
Do you mean that references are left unresolved?

Here is an excerpt from the part of my my Makefile that deals with libraries:

BOOSTLIBS = -L${boost_libs}                              \
            -llibboost_date_time${boost_suffix}          \
            -llibboost_filesystem${boost_suffix}         \
            -llibboost_regex${boost_suffix}              \
            -llibboost_serialization${boost_suffix}      \
            -llibboost_thread${boost_suffix}             \
            -llibboost_program_options${boost_suffix}

where ${boost_libs} expands into the pathname of the directory the Boost
libraries are in and ${boost_suffix} expands into "-mgw-mt-sd-1_33", which
says the libraries are compiled for MinGW, multi-threaded, static, debug, and
Boost version 1.33.

I put ${BOOSTLIBS} as the LAST thing on the call to g++ to link my .exe
file.  Notice that the positioning is important.

The linker reads the files listed on the command line from left to right.
When it comes to a library file, it resolves whatever outstanding references
to that library it has AT THAT POINT in the scan.  If it sees another reference
to that library later in the left to right scan after seeing the library, that later
reference goes unresolved.

The linker needs to see ALL references to library functions BEFORE it
sees the libraries themselves. So, put the libraries last.

The Boost library build process creates the libraries both with the Boost
version suffix ("1_33" in my case) and without.  You can use either one as
they are identical files.

The idea is that if you use the library file versions WITHOUT the version
number suffix, then you won't have to change your Makefile when a new
version comes out.  On the other hand, if you want to explicitly tie your
program to one and only one version of the Boost libraries, you can use the
filename WITH the version numbers.

Merrill
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users