id summary reporter owner description type status milestone component version severity resolution keywords cc 3090 Include file_lock.hpp in two compilation units results in multiple definitions at link time (win32) jkp@… Ion Gaztañaga "Including the file #include ""boost/interprocess/sync/file_lock.hpp"" from two seperate compilation units results in multiply defined symbols. The reason is that the following symbols contain nested class definitions. static inline bool unlink_file(const char *filename); static inline bool get_file_name_from_handle_function (void * hFile, wchar_t *pszFilename, std::size_t length, std::size_t &out_length); Moving the definitions for the functions to a source file and compiling that into the library instead solves the issue. You can prove that the issue is the nested structs / classes by commenting out the function bodies. This is a pretty serious issue since it pretty much means you cannot use boost interprocess under windows right now. I'm compiling under MSVC8.1. The issue does not present itself under GCC, but then, these function implementations are win32 specific." Bugs closed To Be Determined interprocess Boost 1.39.0 Showstopper duplicate multiple definition symbol windows