Bug#721894: libav: FTBFS with opencv 2.4

Nobuhiro Iwamatsu iwamatsu at nigauri.org
Fri Sep 6 00:37:48 UTC 2013


Hi,

output of "pkg-config --cflags --libs libopencv" is following:

---
iwamatsu at debian:~/opencv/libav/libav-9.8$ pkg-config --cflags --libs opencv
-I/usr/include/opencv  /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so
/usr/lib/x86_64-linux-gnu/libopencv_contrib.so
/usr/lib/x86_64-linux-gnu/libopencv_core.so
/usr/lib/x86_64-linux-gnu/libopencv_features2d.so
/usr/lib/x86_64-linux-gnu/libopencv_flann.so
/usr/lib/x86_64-linux-gnu/libopencv_gpu.so
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so
/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so
/usr/lib/x86_64-linux-gnu/libopencv_legacy.so
/usr/lib/x86_64-linux-gnu/libopencv_ml.so
/usr/lib/x86_64-linux-gnu/libopencv_objdetect.so
/usr/lib/x86_64-linux-gnu/libopencv_photo.so
/usr/lib/x86_64-linux-gnu/libopencv_stitching.so
/usr/lib/x86_64-linux-gnu/libopencv_superres.so
/usr/lib/x86_64-linux-gnu/libopencv_ts.so
/usr/lib/x86_64-linux-gnu/libopencv_video.so
/usr/lib/x86_64-linux-gnu/libopencv_videostab.so
---

Changes from opencv 2.3, opencv.pc format has been changed.
Opencv2.4 came to include the path to the library and does not use -l and -L.

opencv2.3:
---
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 2.3.1
Libs: -L${libdir} -lopencv_core -lopencv_imgproc -lopencv_highgui
-lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d
-lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
Cflags: -I${includedir_old} -I${includedir_new}
---

opencv2.4:
---
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 2.4.6.1
Libs:  ${exec_prefix}/lib/x86_64-linux-gnu/libopencv_calib3d.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_contrib.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_core.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_features2d.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_flann.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_gpu.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_highgui.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_imgproc.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_legacy.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_ml.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_objdetect.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_photo.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_stitching.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_superres.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_ts.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_video.so
${exec_prefix}/lib/x86_64-linux-gnu/libopencv_videostab.so
Cflags: -I${includedir_old} -I${includedir_new}
---

Best regards,
  Nobuhiro


2013/9/5 Reinhard Tartler <siretart at gmail.com>:
> Hi Nobuhiro,
>
> the configure script tries to link a small test application using the
> opencv opencv/cv.h and sees if it can resolve the symbol
> cvCreateImageHeader. The necessary libraries are resolved using the
> pkg-config .pc file that is provided by the pkg-config file.
>
> Are you sure that the opencv 2.4 .pc file is working correctly? Can
> you please provide me with the output of
>
> pkg-config --cflags --libs libopencv
>
> when opencv 2.4 is installed? I would like to compare it to a system
> with opencv 2.3 installed. The logfile does indicate some linking
> errors, and we need to figure out what is going wrong here.
>
> On Thu, Sep 5, 2013 at 6:12 AM, Nobuhiro Iwamatsu <iwamatsu at nigauri.org> wrote:
>> Package: libav
>> Version: 9.8-2
>> Severity: wishlist
>>
>> Dear Maintainer,
>>
>> I will update opencv 2.3 to 2.4.
>> I checked building libav package with opencv 2.4, and this FTBFS.
>>
>> ----
>> cd debian-static && CFLAGS="-fstack-protector
>> --param=ssp-buffer-size=4 -Wformat -Werror=format-security"
>> CPPFLAGS="-D_FORTIFY_SOURCE=2" LDFLAGS="-Wl,-z,relro"
>> /home/iwamatsu/work/libav/libav-9.8/configure \
>>         --arch='amd64' --enable-pthreads --enable-runtime-cpudetect
>> --extra-version='6:9.8-2' --libdir=/usr/lib/x86_64-linux-gnu
>> --prefix=/usr      --enable-bzlib  --enable-libdc1394
>> --enable-libfreetype    --enable-frei0r     --enable-gnutls
>> --enable-libgsm     --enable-libmp3lame     --enable-librtmp
>> --enable-libopencv  --enable-libopenjpeg    --enable-libopus
>> --enable-libpulse   --enable-libschroedinger    --enable-libspeex
>> --enable-libtheora  --enable-vaapi  --enable-vdpau  --enable-libvorbis
>>  --enable-libvpx     --enable-zlib --enable-gpl --enable-swscale
>> --enable-libcdio    --enable-x11grab    --enable-libx264
>> --enable-libxvid
>> ERROR: opencv not found
>>
>> If you think configure made a mistake, make sure you are using the latest
>> version from Git.  If the latest version fails, report the problem to the
>> libav-user at libav.org mailing list or IRC #libav on irc.freenode.net.
>> Include the log file "config.log" produced by configure as this will help
>> solving the problem.
>> make: *** [configure-stamp-static] Error 1
>> ----
>>
>> config.log:
>> ----
>> BEGIN /tmp/ffconf.6ofvOVZa.c
>>     1 #include <opencv/cv.h>
>>     2 long check_cvCreateImageHeader(void) { return (long)
>> cvCreateImageHeader; }
>>     3 int main(void) { return 0; }
>> END /tmp/ffconf.6ofvOVZa.c
>> gcc -D_FORTIFY_SOURCE=2 -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64
>> -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
>> -fstack-protector --param=ssp-buffer-size=4 -Wformat
>> -Werror=format-security -std=c99 -fomit-frame-pointer -pthread
>> -I/usr/include/p11-kit-1 -I/usr/include/freetype2
>> -I/usr/include/opencv /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so
>> /usr/lib/x86_64-linux-gnu/libopencv_contrib.so
>> /usr/lib/x86_64-linux-gnu/libopencv_core.so
>> /usr/lib/x86_64-linux-gnu/libopencv_features2d.so
>> /usr/lib/x86_64-linux-gnu/libopencv_flann.so
>> /usr/lib/x86_64-linux-gnu/libopencv_gpu.so
>> /usr/lib/x86_64-linux-gnu/libopencv_highgui.so
>> /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so
>> /usr/lib/x86_64-linux-gnu/libopencv_legacy.so
>> /usr/lib/x86_64-linux-gnu/libopencv_ml.so
>> /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so
>> /usr/lib/x86_64-linux-gnu/libopencv_photo.so
>> /usr/lib/x86_64-linux-gnu/libopencv_stitching.so
>> /usr/lib/x86_64-linux-gnu/libopencv_superres.so
>> /usr/lib/x86_64-linux-gnu/libopencv_ts.so
>> /usr/lib/x86_64-linux-gnu/libopencv_video.so
>> /usr/lib/x86_64-linux-gnu/libopencv_videostab.so -c -o
>> /tmp/ffconf.EAMsyRqL.o /tmp/ffconf.6ofvOVZa.c
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_contrib.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_core.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_features2d.so:
>> linker input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_flann.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_gpu.so: linker input
>> file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_highgui.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_legacy.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_ml.so: linker input
>> file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_photo.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_stitching.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_superres.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_ts.so: linker input
>> file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_video.so: linker
>> input file unused because linking not done
>> gcc: warning: /usr/lib/x86_64-linux-gnu/libopencv_videostab.so: linker
>> input file unused because linking not done
>> gcc -Wl,-z,relro -Wl,--as-needed -I/usr/include/opencv
>> /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so
>> /usr/lib/x86_64-linux-gnu/libopencv_contrib.so
>> /usr/lib/x86_64-linux-gnu/libopencv_core.so
>> /usr/lib/x86_64-linux-gnu/libopencv_features2d.so
>> /usr/lib/x86_64-linux-gnu/libopencv_flann.so
>> /usr/lib/x86_64-linux-gnu/libopencv_gpu.so
>> /usr/lib/x86_64-linux-gnu/libopencv_highgui.so
>> /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so
>> /usr/lib/x86_64-linux-gnu/libopencv_legacy.so
>> /usr/lib/x86_64-linux-gnu/libopencv_ml.so
>> /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so
>> /usr/lib/x86_64-linux-gnu/libopencv_photo.so
>> /usr/lib/x86_64-linux-gnu/libopencv_stitching.so
>> /usr/lib/x86_64-linux-gnu/libopencv_superres.so
>> /usr/lib/x86_64-linux-gnu/libopencv_ts.so
>> /usr/lib/x86_64-linux-gnu/libopencv_video.so
>> /usr/lib/x86_64-linux-gnu/libopencv_videostab.so -o
>> /tmp/ffconf.Isuhq3sA /tmp/ffconf.EAMsyRqL.o -lmp3lame -lgsm -lfreetype
>> -lgnutls -lva -lm -pthread -lbz2 -lz
>> /tmp/ffconf.EAMsyRqL.o: In function `cvDecRefData':
>> ffconf.6ofvOVZa.c:(.text+0xb70): undefined reference to `cvFree_'
>> ffconf.6ofvOVZa.c:(.text+0xc07): undefined reference to `cvFree_'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvGetRow':
>> ffconf.6ofvOVZa.c:(.text+0xd35): undefined reference to `cvGetRows'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvGetCol':
>> ffconf.6ofvOVZa.c:(.text+0xd69): undefined reference to `cvGetCols'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvReleaseMatND':
>> ffconf.6ofvOVZa.c:(.text+0xd84): undefined reference to `cvReleaseMat'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvSubS':
>> ffconf.6ofvOVZa.c:(.text+0xf07): undefined reference to `cvAddS'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvCloneSeq':
>> ffconf.6ofvOVZa.c:(.text+0xf41): undefined reference to `cvSeqSlice'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvSetNew':
>> ffconf.6ofvOVZa.c:(.text+0xfb9): undefined reference to `cvSetAdd'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvGetSetElem':
>> ffconf.6ofvOVZa.c:(.text+0x106f): undefined reference to `cvGetSeqElem'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvEllipseBox':
>> ffconf.6ofvOVZa.c:(.text+0x1184): undefined reference to `cvEllipse'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvFont':
>> ffconf.6ofvOVZa.c:(.text+0x11d7): undefined reference to `cvInitFont'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvReadIntByName':
>> ffconf.6ofvOVZa.c:(.text+0x12ed): undefined reference to `cvGetFileNodeByName'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvReadRealByName':
>> ffconf.6ofvOVZa.c:(.text+0x13a5): undefined reference to `cvGetFileNodeByName'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvReadStringByName':
>> ffconf.6ofvOVZa.c:(.text+0x1445): undefined reference to `cvGetFileNodeByName'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvReadByName':
>> ffconf.6ofvOVZa.c:(.text+0x148a): undefined reference to `cvGetFileNodeByName'
>> ffconf.6ofvOVZa.c:(.text+0x14a1): undefined reference to `cvRead'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvContourPerimeter':
>> ffconf.6ofvOVZa.c:(.text+0x14d6): undefined reference to `cvArcLength'
>> /tmp/ffconf.EAMsyRqL.o: In function `cvCalcHist':
>> ffconf.6ofvOVZa.c:(.text+0x151d): undefined reference to `cvCalcArrHist'
>> /tmp/ffconf.EAMsyRqL.o: In function `check_cvCreateImageHeader':
>> ffconf.6ofvOVZa.c:(.text+0x162f): undefined reference to `cvCreateImageHeader'
>> collect2: error: ld returned 1 exit status
>> ERROR: opencv not found
>> ----
>>
>> I attached full build log.
>> Could you check your package?
>>
>> Beste regards,
>>   Nobuhiro
>>
>> -- System Information:
>> Debian Release: jessie/sid
>>   APT prefers unstable
>>   APT policy: (500, 'unstable'), (1, 'experimental')
>> Architecture: amd64 (x86_64)
>>
>> Kernel: Linux 3.10-2-amd64 (SMP w/2 CPU cores)
>> Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
>> Shell: /bin/sh linked to /bin/dash
>>
>>
>> --
>> Nobuhiro Iwamatsu
>>    iwamatsu at {nigauri.org / debian.org}
>>    GPG ID: 40AD1FA6
>>
>> _______________________________________________
>> pkg-multimedia-maintainers mailing list
>> pkg-multimedia-maintainers at lists.alioth.debian.org
>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers
>
>
>
> --
> regards,
>     Reinhard



-- 
Nobuhiro Iwamatsu
   iwamatsu at {nigauri.org / debian.org}
   GPG ID: 40AD1FA6



More information about the pkg-multimedia-maintainers mailing list