看了网上很多的解释,没有一个解决了我的问题,如果你也是这种情况,试试我的吧,原因应该是他们所说的,有两个版本,这是肯定的,但是就是找不到所谓的9.0在哪,最后尝试了卸载libjpeg,发现-ljpeg还是能编译成功,我就晕了,暂时猜测opencv对这个有奇妙的影响,所以我们要做的就是指定编译所用的.so的版本
把你libjpeg里面的libjpeg.so文件找出来,放在你要编译的.c文件同级目录,用下面的命令编译就行了(如果没有自己设定,libjpeg.so一般在.libs/下,该文件夹是隐藏的,直接cd过去)

gcc -o v4l2test v4l2test.c -L. -ljpeg