Tôi xây dựng ffmpeg bằng librtmp. Librtmp của tôi là/opt/librtmp/lib. Khi tôi thực hiện ffmpeg, nó nói:Cách thêm đường dẫn tìm kiếm thư viện được chia sẻ vào tệp thực thi?
./ffmpeg: error while loading shared libraries: librtmp.so.0: cannot open shared object file: No such file or directory
tôi sử dụng ldd lệnh nó sẽ hiển thị không tìm thấy:
[[email protected] bin]# ldd ffmpeg
linux-vdso.so.1 => (0x00007fff15576000)
librtmp.so.0 => not found
libz.so.1 => /lib64/libz.so.1 (0x00002b9a71e10000)
libm.so.6 => /lib64/libm.so.6 (0x00002b9a72025000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b9a722a8000)
libc.so.6 => /lib64/libc.so.6 (0x00002b9a724c3000)
/lib64/ld-linux-x86-64.so.2 (0x00002b9a71bf2000)
Tôi biết tôi như vậy tại:
[[email protected] bin]# ls -alh /opt/librtmp/lib/
total 300K
drwxr-xr-x 3 root root 4.0K Sep 25 17:10 .
drwxr-xr-x 7 root root 4.0K Sep 25 17:10 ..
-rw-r--r-- 1 root root 158K Sep 25 17:10 librtmp.a
lrwxrwxrwx 1 root root 12 Sep 25 17:10 librtmp.so -> librtmp.so.0
-rwxr-xr-x 1 root root 118K Sep 25 17:10 librtmp.so.0
drwxr-xr-x 2 root root 4.0K Sep 25 17:10 pkgconfig
Tôi tìm thấy một số các cách khắc phục sự cố
- sửa đổi /etc/ld.so.conf, nhưng nó đòi hỏi người dùng bữa ăn tối
- bộ biến LD_LIBRARY_PATH, nhưng nó không được conventient cho người dùng
- qua rPath để gcc, như
cấu hình này args for my ffmpeg
PKG_CONFIG_PATH="/opt/librtmp/lib/pkgconfig" ./configure --disable-doc \
--disable-ffserver --disable-avdevice \
--disable-postproc --disable-avfilter --disable-bsfs \
--disable-filters \
--disable-asm \
--disable-bzlib \
--enable-librtmp \
--prefix=/opt/ffmpeg \
--extra-ldflags="-Wl,-rpath,/opt/librtmp/lib"
Giả sử không có mã nguồn để biên dịch lại? Làm cách nào để thêm đường dẫn tìm kiếm thư viện được chia sẻ vào tệp thực thi?
Tôi đã thực hiện một liên kết tượng trưng của /usr/lib/i486-linux-gnu/librtmp.so vào/usr/local/lib và ffmpeg chạy như một sự quyến rũ ... – Ice