libjpeg linker error Precise upgrade után

 ( martonmiklos | 2012. június 30., szombat - 12:11 )

Precise upgrade után a következő fogadott egy friss mjpg-streamer foprgatás után:

./mjpg_streamer: symbol lookup error: ./input_uvc.so: undefined symbol: jpeg_std_error

A fordítás a következő képpen zajlik:

mm@lapos:~/Projektek/mjpg-streamer/mjpg-streamer-experimental/plugins/input_uvc$ make
gcc -c -O1  -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -g -o v4l2uvc.lo v4l2uvc.c
gcc -c -O1  -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -g -o jpeg_utils.lo jpeg_utils.c
gcc -c -O1  -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -g -o dynctrl.lo dynctrl.c
gcc -O1  -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -g -ljpeg -o input_uvc.so input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo

Tehát elvileg linkelek a libjpeg-el.
A furcsa és félrevezető az volt, hogy volt egy másik branch ami működött a upgrade után, viszont csak addig amíg újra nem forgattam.
Újraforgatás előtt az ldd ezt mondta:

mm@lapos:~/Projektek/mjpg-streamer/mjpg-streamer$ ldd ./input_uvc.so 
	linux-vdso.so.1 =>  (0x00007fff9b1ff000)
	libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007f18b6163000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f18b5da6000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f18b65bc000)

Újrafordítás után a libjpeg eltűnik.

Az alábbi libjpeg csomagok vannak feltéve:
libjpeg-dev install
libjpeg-turbo8 install
libjpeg-turbo8:i386 install
libjpeg-turbo8-dev install
libjpeg62 install
libjpeg8 install
libjpeg8:i386 install
libjpeg8-dev install

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

A -ljpeg-et tedd a végére.

Király vagy!

Köszönöm szépen. Van esetleg valami irodalmad arról ahol leírják, hogy ezt most miért így kell?

Konkrét linkem nincs, de Google segít :-) Azért kell a végére, mert a linker csak annyit használ a könyvtárból, amire az előtte levők hivatkoznak.Ha nincs előtte semmi, akkor semmit.

Köszönöm az infót!