You were right. It works fine if I use g++ -ggdb -O3 credit_card_example.cpp -o credit_card_example /usr/local/lib/libboost_regex-gcc41-d-1_39.so But not with g++ -ggdb -O3 credit_card_example.cpp -o credit_card_example -lboost_regex In my /usr/local/lib directory I find lrwxrwxrwx 1 root root 37 Oct 29 17:17 libboost_regex-gcc41-d-1_39.so -> libboost_regex-gcc41-d-1_39.so.1.39.0 lrwxrwxrwx 1 root root 37 Oct 29 17:17 libboost_regex-gcc41-d-1_39.so.1 -> libboost_regex-gcc41-d-1_39.so.1.39.0 lrwxrwxrwx 1 root root 37 Oct 29 17:17 libboost_regex-gcc41-d-1_39.so.1.39 -> libboost_regex-gcc41-d-1_39.so.1.39.0 -rwxr-xr-x 1 root root 6763287 Oct 29 17:17 libboost_regex-gcc41-d-1_39.so.1.39.0 But shouldn't there be a libboost_regex.a file ? So that I can use g++ -ggdb -O3 credit_card_example.cpp -o credit_card_example -L/usr/local/lib/ -lboost_regex I bjamed in /usr/include/boost_1_39_0/libs/regex/build (where I unzipped myboost_1_39_0 tarball). Then did bjam install. Shouldn't that put libboost_regex.a in the right location automatically ? If not what can I do? I am using BOOST_VERSION 103900 only. Thanks -JR