Thank you all for your prompt responses. I comment further below:
We have recently started to use boost in Windows and we have had a similar problem. After some tries, we have sucesfully made a Multithreaded Console Application doing this:
In C/C++ -> Code Generation -> Use run-time library select Debug Multithreaded DLL
I'm 99% sure this was the only problem.
I already was using the multithreaded libraries. If I had select single-threaded libraries, the boost::thread hpp files would have generated a compiler error.
In C/C++ -> C++ Language select Enable RTTI
A good idea in general.
I had already enabled RTTI.
In Link -> Input -> Object/Library modules clean all the entries (leave it blank)
This shouldn't be necessary.
This was already blank.
In Link -> Input -> Ignore Libraries set: libcmtd.lib, libcmt.lib, libcd.lib, libc.lib
I'm also not sure that this should be necessary.
This was interesting. On Visual C++ 6.0, it did not make any difference to the linker output. On Visual C++ .NET, it removed all the 'multiply defined symbol' errors except for those relating to three basic_string constructors and basic_string::c_str(). (It solved MOST of the problem, but didn't take care of everything.) However, if I exclude the main C runtime library files from my build as you suggest, it seems like I would run into more problems later on when I try to use standard C functions. Again, my problem when linking with the library in VC6 is that libboost_thread.lib(exceptions.obj) has one unresolved external symbol for basic_string::basic_string(char const *). I'm still flummoxed. If you have more ideas, I would really appreciate them. Thanks, Jonathan