Java native library depends on ffmpeg shared libraries (Bug #3626)
Description
I'm compiling 2.4.8 on a Mac with FFMPEG 2.1.1. If I compile FFMPEG just as a shared library and try to build the library, the compilation generates this error:
No rule to make target `<path-to-FFMPEG>/lib/libavcodec.a', needed by `lib/libopencv_java248.dylib'. Stop.
If I compile ffmpeg with both static and dynamic libraries, the error doesn't appear, but running 'otool -L libopencv_java248.dylib' lists FFMPEG as a dependency:
libopencv_java248.dylib:
lib/libopencv_java248.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
/usr/local/lib/libavcodec.55.dylib (compatibility version 55.0.0, current version 55.39.101)
/usr/local/lib/libavformat.55.dylib (compatibility version 55.0.0, current version 55.19.104)
/usr/local/lib/libavutil.52.dylib (compatibility version 52.0.0, current version 52.48.101)
/usr/local/lib/libswscale.2.dylib (compatibility version 2.0.0, current version 2.5.101)
[...]
Shouldn't the big native library just depend on system libraries?
Thanks.
Associated revisions
Merge pull request #3626 from jet47:cuda-bgsegm-refactoring
History
Updated by Nikita Manovich almost 11 years ago
Thank you for your bug report.
- Status changed from New to Open
- Assignee set to Alexander Shishkov
Updated by Nikita Manovich almost 11 years ago
- Category set to ios
Updated by Vadim Pisarevsky almost 10 years ago
dependency of ffmpeg should in theory be preserved. libav* should be linked as shared libs. If you do not want ffmpeg dependency, disable ffmpeg.
- Category changed from ios to highgui-video
- Affected version changed from 2.4.8 (latest release) to branch '2.4' (2.4-dev)
Updated by Vadim Pisarevsky almost 10 years ago
- Category changed from highgui-video to java bindings
Updated by Maksim Shabunin over 9 years ago
Issue has been transferred to GitHub: https://github.com/Itseez/opencv/issues/4723