In a jamfile I have: lib user32 ; lib gdi32 ; exe test1 : main.cpp user32 gdi32 ; According to the Boost Build documentation the 'lib' syntax above refers to pre-built libraries, and not libraries I mean to build as a shared or static library. When I run b2 with a particular toolset, and use the --debug-building option to see what targets are being built, I see results of: Building target '../../../libs/test_local/build/user32'... and Building target '../../../libs/test_local/build/gdi32'... Furthermore the build of the test1.exe does not add the user32 or gdi32 pre-built libraries to the linker command line. Can anyone tell me why Boost Build is attempting to build a target for a library which I specify as a pre-built library ?