Many people(including me) met the infamous "undefined reference" error during installing OpenCV, such as

../../lib/libopencv_highgui.so.2.4.1: undefined reference to `avpriv_vorbis_parse_extradata’
../../lib/libopencv_highgui.so.2.4.1: undefined reference to `av_des_init’
../../lib/libopencv_highgui.so.2.4.1: undefined reference to `av_rc4_crypt’
../../lib/libopencv_highgui.so.2.4.1: undefined reference to `av_aes_crypt’
../../lib/libopencv_highgui.so.2.4.1: undefined reference to `av_des_mac’
../../lib/libopencv_highgui.so.2.4.1: undefined reference to `av_tree_destroy’
../../lib/libopencv_highgui.so.2.4.1: undefined reference to `av_sha_update’
collect2: ld returned 1 exit status
make[2]: *** [bin/opencv_perf_imgproc] Error 1
make[1]: *** [modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/all] Error 2
make: *** [all] Error 2

This error was caused by lacking of or improper installation of ffmpeg. If you are sure the ffmpeg is successfully installed, and you can find "– FFMPEG: YES" after cmake opencv, then you'd better think about adding option "--enable-shared " when configure ffmpeg. After re-installing ffmpeg, then this "undefined reference" error should disappear.

PS: A very good guideline of installing OpenCV on Ubuntu: 

A Comprehensive Guide to Installing and Configuring OpenCV 2.4.2 on Ubuntu

PPS: Damn Ubuntu!!!