trivialだけど同症状で困ってる数少ない方向け
C++の有名ライブラリboostには静的リンクするものと動的リンクするものがあります。

program_optionsはプログラム起動時に与えられた引数のparseを一手に引き受けて、ヘルプ作成までやってくれる優れものですが、動的リンクするタイプのライブラリです。概要や使いかたはlet's boostを参照。
http://www.kmonos.net/alang/boost/classes/program_options.html
動的リンクなのでコンパイルには

g++ hoge.o fuga.o -lboost_program_options

のようにオプションを付ける必要があります。

古いboostからバージョンアップした際に、/usr/lib/や/usr/lib64/内部にあるDLLをアップデートし損ねているとヘッダファイルだけバージョンアップされて、バイナリが古いままなのでコンパイルが通りません。
そしてこのようなエラーメッセージを拝むことになります。
(このメッセージはboost-1.33→1.43にアップデートした場合に出た物)

undefined reference to `boost::program_options::options_description::m_default_line_length'
`boost::program_options::basic_command_line_parser::extra_parser(boost::function1, std::allocator >, std::basic_string, std::allocator > >, std::basic_string, std::allocator > const&>)':
...

なので/usr/lib内や/usr/lib64内部を手動でアップデートさせます(自動で行う方法もあると思いますが
動的リンクさせるべきDLLファイルはboostの入っていたディレクトリからstage/lib/に一式入っています

# rm /usr/lib/libboost_program_options.so
# rm /usr/lib64/libboost_program_options.so
# cp /(boostのディレクトリ)/stage/lib/libboost_program_options.* /usr/lib/
# cp /(boostのディレクトリ)/stage/lib/libboost_program_options.* /usr/lib64/

本来は普通にインストールした時点で動的リンクも全て最新の物になっているべきですが、何らかの理由でアップデートされなかった場合など。