Ошибки времени выполнения при кодировании программ OpenCV с использованием codeBlocks в Linux - PullRequest
1 голос
/ 20 мая 2011

Когда я пытаюсь скомпилировать программу C ++, которая использует библиотеку openCV в CodeBlocks, она выдает ошибку времени выполнения:

error while loading shared libraries: libopencv_calib3d.so.2.2: 
cannot open shared object file: no such file or directory

Это несмотря на то, что я добавил все необходимые библиотеки, используяНастройки компоновщика для IDE Code Blocks (включая библиотеку libopencv_calib3d.so.2.2, которая является символической ссылкой).

Однако я могу скомпилировать программу с помощью командной строки, введя команду:

g++ hello-world.cpp -o hello-world \
      -I /usr/local/include/opencv -L /usr/local/lib 
      \ -lm -lcv -lhighgui -lcvaux

Может кто-нибудь посоветовать мне, как я могу запустить то же самое с использованием блоков кода.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Файл libopencv_calib3d.so.2.2 является частью OpenCV 2.2.Однако в OpenCV 2.2 нет libcv, libhighgui или libcvaux.Это означает, что ваш вызов g ++ ссылается на другую версию OpenCV.

Для связи с OpenCV 2.2 вам понадобятся флаги типа -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann.

Вы также не должнывставьте их вручную, но вместо этого используйте

export PKG_CONFIG_PATH=/usr/local/share/opencv/:$PKG_CONFIG_PATH
g++ `pkg-config --cflags --libs opencv` hello-world.cpp -o hello-world
0 голосов
/ 26 декабря 2014

Я бы порекомендовал установить достаточно актуальную версию OpenCV для Linux, например, 2.4.9, на момент написания этой статьи, похоже, собирается с текущей версией gcc, которую я имею (4.8.2). Есть несколько шагов, которые необходимо выполнить, чтобы получить простой пример OpenCV и запустить его в Code :: Blocks. В документации OpenCV говорится, что вы должны создать каталог сборки в корневом каталоге OpenCV и запустить cmake, make, sudo make install и т. Д., Чтобы сгенерировать библиотеки, на которые может потребоваться ссылка вашего проекта, включая libopencv_calib3d.so, о котором вы упомянули:

enter image description here

В этой публикации блога дается объяснение того, как установить OpenCV и настроить его использование для Code :: Blocks в средах Ubuntu Linux:

http://www.technical -recipes.com / 2014 / с использованием OpenCV-в-CodeBlocks-в-Linux /

...