если ваша среда разработки не имеет pkg-config
и из-за этого принятый ответ karlphilip нецелесообразен или вам необходимо знать минимальный набор библиотек, необходимый для связи вашего приложения, тогда предполагая код, такой как
#include <cv.h>
#include <highgui.h>
int main()
{
return 0;
}
вы можете добавлять библиотечные аргументы из следующего списка последовательно сверху вниз, пока не найдете минимальный набор необходимых вам аргументов:
-lopencv_core
-lopencv_imgproc
-lopencv_highgui
-lopencv_ml
-lopencv_video
-lopencv_features2d
-lopencv_calib3d
-lopencv_objdetect
-lopencv_contrib
-lopencv_legacy
-lopencv_flann
Например, исходный код C, указанный в верхней части этого поста, компилируется и связывается только с
gcc hello.c -o hello \
-I /usr/include/opencv \
-L /usr/lib \
-lopencv_core \
-lopencv_imgproc
на моем старом x86_64 Ubuntu 12.04 box.
Предполагая код C ++, такой как
#include "core/core.hpp"
#include "highgui/highgui.hpp"
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
return 0;
}
тогда вы бы скомпилировали и связали с
g++ hello.cpp -o hello \
-I /usr/include/opencv2 \
-L /usr/lib \
-lopencv_core \
-lopencv_imgproc