first off, I'm getting "cygcheck: Wrong architecture. Only ix86 executables supported." when running cygcheck. That said, ... The attached multithread.cpp ought to run as far as I can tell from Cygwin, Boost, & the web. (There is a posting from 2010 regarding problems with building boost::thread on Cygwin, but I'm able to build, and anyway, the Cygwin package already includes an up-to-date version of boost::thread.) If I try to compile the attached code thus: $ g++ -D THREADED multithread.cpp I get: /tmp/ccpBRr49.o:multithread.cpp:(.text+0x259): undefined reference to `boost::system::generic_category()' /tmp/ccpBRr49.o:multithread.cpp:(.text+0x263): undefined reference to `boost::system::generic_category()' /tmp/ccpBRr49.o:multithread.cpp:(.text+0x26d): undefined reference to `boost::system::system_category()' /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: /tmp/ccpBRr49.o: bad reloc address 0xb in section`.text$_ZN5boost6system14error_categoryD1Ev[boost::system::error_category::~error_category()]' collect2: ld returned 1 exit status If I add the option to load libbost_system (as suggested by some threads on the web): $ g++ -D THREADED -llibboost_system multithread.cpp I get: /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find -l/usr/local/lib/libboost_system collect2: ld returned 1 exit status This result is consistent regardless of whether I specify the full file name or absolute path. BTW: $ updatedb && locate libboost_program_options /cygdrive/f/_engineeringStocks/boost_1_53_0/bin.v2/libs/program_options/build/gcc-4.5.3/release/link-static/threading-multi/libboost_program_options.a /cygdrive/f/_engineeringStocks/boost_1_53_0/bin.v2/libs/program_options/build/gcc-4.5.3/release/threading-multi/libboost_program_options.dll.a /lib/libboost_program_options-mt.dll.a /usr/lib/libboost_program_options-mt.dll.a /usr/local/lib/libboost_program_options.a /usr/local/lib/libboost_program_options.dll.a thank you for your attention and (hopefully) help, Lewis