$ cat /usr/lib/pkgconfig/opencv.pc | grep ^Libs Libs: ${exec_prefix}/lib/libopencv_legacy.so ${exec_prefix}/lib/libopencv_calib3d.so ${exec_prefix}/lib/libopencv_contrib.so ${exec_prefix}/lib/libopencv_core.so ${exec_prefix}/lib/libopencv_features2d.so ${exec_prefix}/lib/libopencv_flann.so ${exec_prefix}/lib/libopencv_highgui.so ${exec_prefix}/lib/libopencv_imgproc.so ${exec_prefix}/lib/libopencv_legacy.so ${exec_prefix}/lib/libopencv_ml.so ${exec_prefix}/lib/libopencv_objdetect.so ${exec_prefix}/lib/libopencv_photo.so ${exec_prefix}/lib/libopencv_softcascade.so ${exec_prefix}/lib/libopencv_stitching.so ${exec_prefix}/lib/libopencv_ts.so ${exec_prefix}/lib/libopencv_video.so ${exec_prefix}/lib/libopencv_videostab.so $ pkg-config opencv --libs /usr/lib/libopencv_legacy.so /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_softcascade.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so А должно быть: Libs: -L${libdir} -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_h ighgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopen cv_superres -lopencv_ts -lopencv_video -lopencv_videostab
А по-моему, и так правильно.
(In reply to comment #1) > А по-моему, и так правильно. Так не работает же. $ pkg-config opencv --libs должен отдавать список библиотек -l, а не *.so Вы же сами исправляли eviacam, когда при правильном /usr/lib/pkgconfig/opencv.pc никаких патчей не требуется.
(В ответ на комментарий №1) > А по-моему, и так правильно. Т.е., между объектниками и библиотеками нет никакой разницы?
Можно услышать аргументы, почему "и так правильно"? Читал man pkg-config и нигде не увидел возможность указывать библиотеки на прямую. Также, если передавать линковщику просто список библиотек, то он их просто игнорирует. В результате получются unresolved symbols. Нужно передавать -l.
"Также, если передавать линковщику просто список библиотек, то он их просто игнорирует." Ни разу такого не видел. Вам, видимо, попался кривой проект, который список библиотек втывает ДО списка объектников. PS. Если делаете REOPENED, давайте патчи.
(В ответ на комментарий №5) > PS. Если делаете REOPENED, давайте патчи. http://pkgs.fedoraproject.org/cgit/opencv.git/tree/opencv-pkgcmake.patch http://pkgs.fedoraproject.org/cgit/opencv.git/tree/opencv-pkgcmake2.patch
В арче тоже вот об этом говорят https://bugs.archlinux.org/task/32430
Приложу ориентировочно на выходных. Если надо раньше, у @everybody есть ACL...
(В ответ на комментарий №8) > Приложу ориентировочно на выходных. > Если надо раньше, у @everybody есть ACL... Евгений, начал смотреть, и возник вопрос (прошу прощения что здесь спрашиваю). Откуда такая странная версия (2.4.9) взялась? По адресу https://github.com/Itseez/opencv нахожу только 2.4.6.1
modules/core/include/opencv2/core/version.hpp
libopencv2.4-2.4.9-alt4.git20130204 -> sisyphus: * Sun Aug 04 2013 Eugeny A. Rostovtsev (REAL) <real at altlinux> 2.4.9-alt4.git20130204 - Fixed pkg-config file (ALT #29231)