5
g++ cv.cpp -o cv -I /usr/local/include/opencv
    -L /usr/local/lib  -lm -lcv -lhighgui -lcvaux

エラー:

/usr/bin/ld: cannot find -lcv
collect2: ld returned 1 exit status

コード:

#include <cv.h>
#include <ml.h>
#include <cxcore.h>
//#include <cxtypes.h>
#include <highgui.h>

int main(int argc, char* argv[])
{
    IplImage* img = cvLoadImage( "bal.png" );
    cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
    cvShowImage("Example1", img);
    cvWaitKey(0);
    cvReleaseImage( &img );
    cvDestroyWindow( "Example1" );
    return 0;
}

32ビットです。

locate libcv
/usr/lib/libcv.so.2.1
/usr/lib/libcv.so.2.1.0

`pkg-config --cflags --libs opencv`

-I/usr/local/include/opencv
-I/usr/local/include  /usr/local/lib/libopencv_calib3d.so
/usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_features2d.so /usr/local/lib/libopencv_flann.so
/usr/local/lib/libopencv_gpu.so /usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so
/usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so
/usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so
/usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_ts.so
/usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videostab.so

OpenCV-2.4.0を/usr/ localにインストールしましたが、システムpython-opencvもあります。どこで間違いをしているのですか?私は何をすべきか?

4

3 に答える 3

6

OpenCVサイト(バージョン2.2の場合)で公開されている変更ログからわかるように、ライブラリ名はバージョン2.2以降に変更されているため、バージョン2.1のリンクに使用されるライブラリ名は、バージョン2.4(つまりlibcv.so-lcvバージョン>2.1の場合は有効なライブラリ名ではありません)。pkg-config新しいバージョンのOpenCVの一部であるライブラリ(コマンドでリストされている)を渡す必要があります。pkg-configこれらの行でコンパイラとリンカのフラグを渡すために使用できます: g++ cv.cpp -o cv $(pkg-config --cflags --libs opencv)
お役に立てれば!

于 2012-05-04T20:05:36.893 に答える
1

/usr/lib新しくインストールされたバージョン2.4が入っている間にバージョン2.1が入って/usr/local/libいるので、それを修正し、libldが見つけたものがコンパイル/リンクしたものであることを確認する必要があります。

于 2012-05-04T17:14:17.200 に答える
0

opencv 2.4でも同様の問題があり、互換性の問題でした。最新バージョンを使用する場合は、以前のバージョンのopencvを削除して、この問題やコンパイル時のlibロケーションの問題を回避してください。

于 2015-01-23T10:37:21.590 に答える