我正在尝试在主板上交叉编译opencv和ffmpeg。
环境和版本信息如下。 [环境] -ubuntu 14.04 LTS -cmake版本2.8.12.2(我使用的是cmake-gui) -opencv(2.4.12) -ffmpeg(3.0.1) -toolchain(arm-linux-gnueabihf-gcc版本4.9.3)
首先,我使用工具链编译了ffmpeg。
第二,我有cmake-gui opencv。 但这找不到ffmpeg库。
-- FFMPEG: YES
-- codec: NO
-- format: NO
-- util: NO
-- swscale: NO
我添加了如下路径。
$ export PKG_CONFIG_PATH = / home / me / usr / lib / pkgconfig
并发现它。
-- FFMPEG: YES
-- codec: YES (ver 57.24.102)
-- format: YES (ver 57.25.100)
-- util: YES (ver 55.17.103)
-- swscale: YES (ver 4.0.100)
然后,出现一个错误。 错误内容如下。
[ 97%] Building CXX object apps/haartraining/CMakeFiles/opencv_createsamples.dir/createsamples.cpp.o
Linking CXX executable ../../bin/opencv_createsamples
/root/gcc-linaro-4.9/bin/../lib/gcc/arm-linux-gnueabihf/4.9.3/../../../../arm-linux-gnueabihf/bin/ld: warning: libavcodec.so.57, needed by ../../lib/libopencv_highgui.so.2.4.12, not found (try using -rpath or -rpath-link)
/root/gcc-linaro-4.9/bin/../lib/gcc/arm-linux-gnueabihf/4.9.3/../../../../arm-linux-gnueabihf/bin/ld: warning: libavformat.so.57, needed by ../../lib/libopencv_highgui.so.2.4.12, not found (try using -rpath or -rpath-link)
/root/gcc-linaro-4.9/bin/../lib/gcc/arm-linux-gnueabihf/4.9.3/../../../../arm-linux-gnueabihf/bin/ld: warning: libavutil.so.55, needed by ../../lib/libopencv_highgui.so.2.4.12, not found (try using -rpath or -rpath-link)
/root/gcc-linaro-4.9/bin/../lib/gcc/arm-linux-gnueabihf/4.9.3/../../../../arm-linux-gnueabihf/bin/ld: warning: libswscale.so.4, needed by ../../lib/libopencv_highgui.so.2.4.12, not found (try using -rpath or -rpath-link)
../../lib/libopencv_highgui.so.2.4.12: undefined reference to `av_free_packet@LIBAVCODEC_57'
../../lib/libopencv_highgui.so.2.4.12: undefined reference to `av_write_frame@LIBAVFORMAT_57'
(Omit similar content)
collect2: error: ld returned 1 exit status
make[2]: *** [bin/opencv_createsamples] Error 1
make[1]: *** [apps/haartraining/CMakeFiles/opencv_createsamples.dir/all] Error 2
make: *** [all] Error 2
我认为这是一个库链接错误,因为 (警告:../../ lib / libopencv_highgui.so.2.4.12所需的libavcodec.so.57(尝试使用-rpath或-rpath-link)) 告诉。
1。 我不知道我做得好不好 我还将 libopencv_highgui.so.2.4.12 文件复制到 / usr / lib(默认路径) 链接链接
2。 我还添加了ld。
more /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
/usr/lib
3。 我还尝试设置LD_LIBRARY_PATH。
但是全部失败了。
如您所知,我是一个初学者,缺乏知识。
请给我有关如何解决此问题的建议。
谢谢