I reinstalled my ubuntu system and also ROS. I tested slam_karto package when some strange error came out. I still cannot explain it for now.
'vector' in namespace 'std' does not name a type
located in /opt/ros/indigo/include/ros/console.h
Fixed by:
cd /opt/ros/indigo/include/ros/console.h
gedit console.h
add a line:
#include <vector>
But, why would an error happen in ROS itself?