Scott Meyers
Try a slight variation:
cl /TP /W4 /WL /GX /GR -ID:\C++\Boost\Current simple_ls.cpp %BOOST_FILESYSTEM_LIB%
Alas, that doesn't help. I still get multiply defined symbols. This is with 1.30.2.
It looks like your program and the filesystem library are built against different versions of the C/C++ run-time library. Under the control of #pragma directives, Visual C++ compiler can insert references into object files that tell the linker which libraries to link with. In this case the linker tries to link with both run-time libraries and finds conflicting definitions. Check that you're linking with the right build of the filesystem library.
Is there any reason to expect that the problem will magically go away if the get the CVS version?
Perhaps. The Boost headers are now using the abovementioned pragma to (hopefully) select the right library to link with. Ben.