Boost logo

Boost :

Subject: [boost] boost::interprocess - lnk2005 error due to compiler/linker bug in msvc8
From: willem hengeveld (itsme_at_[hidden])
Date: 2009-07-01 04:03:12

when using boost::interprocess under win32, i ran into the following
in boost/interprocess/detail/win32_api.hpp several static inline
functions have a function local class
for releasing resources, like 'unlink_file', which defines 2 classes:
handle_closer, and auto_ptr

due to a compiler bug, as discussed here:

you get a LNK2005 error <symbol> already defined in <object>

when using boost::interprocess from multiple .cpp files

a solution is to use boost::shared_ptr instead of local classes in
win32_api.hpp, like this:

   boost::shared_ptr<void> hiPSAPI =
boost::shared_ptr<void>(load_library("PSAPI.DLL"), free_library);

attached is the complete patch


Boost list run by bdawes at, gregod at, cpdaniel at, john at