Fórumok
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ások
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!