Ошибка компиляции базовой программы openCV

Я установил openCV по ссылке, указанной ниже:
https://help.ubuntu.com/community/OpenCV#aStep_1

Установка прошла гладко, теперь, когда я собираю свою тестовую программу:
используя следующую команду:

opencv openCVtest.cpp

это выдает мне следующую ошибку:

compiling openCVtest.cpp
g++: error: missing argument to ‘-l’
Output file => openCVtest

Я посмотрел сценарий, который я использую для компиляции (его дано Вот )
и увидел эту конкретную строку, которая будет использоваться для компиляции моего кода C ++:

g++ -ggdb `pkg-config --cflags opencv` -o `basename $1 .cpp` $1 `pkg-config --libs opencv`;

Я понимаю, что «-l» запрашивает некоторые библиотеки, но я думаю, что я не должен передавать в этот скрипт ничего, кроме моего кода.

PS вот деталь того, что выполнено в этой строке:

hduser@ishan-Notebook-PC:~/Documents/OpenCv$ echo g++ -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.cpp .cpp` opencvtest.cpp `pkg-config --libs opencv`

g++ -ggdb -I/usr/include/opencv -I/usr/include/opencv2 -o opencvtest opencvtest.cpp -lopencv_calib3d -lopencv_imgproc -lopencv_contrib -lopencv_legacy -l

Не могли бы вы, ребята, помочь мне разобраться, что именно я делаю не так?
Спасибо !

ОБНОВИТЬ

Я обнаружил, что мой файл opencv.pc, содержащий дополнительный «-l», я удалил этот флаг, и вышеуказанные ошибки исчезли:

содержимое файла opencv.pc:

prefix=/usr
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: opencv
Description: The opencv library
Version: 2.x.x
Cflags: -I${includedir}/opencv -I${includedir}/opencv2
Libs: -L${libdir} -lopencv_calib3d -lopencv_imgproc -lopencv_contrib -lopencv_legacy -l

Обратите внимание на дополнительные «-L» в последней строке.

Однако теперь я получаю следующую ошибку:

openCVtest.cpp:1:39: fatal error: opencv2/highgui/highgui.hpp: No such file or directory
#include "opencv2/highgui/highgui.hpp"

0

Решение

Кажется, что pkg-config возвращает еще один -l в конце.
Вы можете попробовать запустить команду без нее вручную:

g++ -ggdb -I/usr/include/opencv -I/usr/include/opencv2 -o opencvtest opencvtest.cpp -lopencv_calib3d -lopencv_imgproc -lopencv_contrib -lopencv_legacy

Обновить:
Для второго возникшего вопроса попробуйте использовать пути включения без opencv а также opencv2 каталоги.

Итак, вместо этого:

Cflags: -I${includedir}/opencv -I${includedir}/opencv2

Попробуй это:

Cflags: -I${includedir}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]