

次のC++のプログラムをコンパイルできません. 原因を教えてください.

[code]

    #include "stdio.h"
    #include "highgui.h"
    #include "cv.h"
    
    int main(int argc, char** argv){
    
        IplImage* img = cvLoadImage( argv[1] );
    
        cvNamedWindow( "scrot.png", CV_WINDOW_AUTOSIZE );
    
        cvShowImage( "scrot.png", img );
    
        cvReleaseImage( &img );
    
        cvDestroyWindow( "scrot.png" );
    
    }
    
[/code]

### エラーメッセージ

[code]

    reg++ -Wall -o "rei2-1" "rei2-1.cpp"（ディレクトリ: /home/pi/Desktop/C） /tmp/ccWxBQc9.o: 関数 main' 内: 
    rei2-1.cpp:(.text+0x28): cvLoadImage' に対する定義されていない参照です
    rei2-1.cpp:(.text+0x3c): cvNamedWindow' に対する定義されていない参照です
    rei2-1.cpp:(.text+0x4c): cvShowImage' に対する定義されていない参照です
    rei2-1.cpp:(.text+0x58): cvReleaseImage' に対する定義されていない参照です
    rei2-1.cpp:(.text+0x60): cvDestroyWindow' に対する定義されていない参照です  
    collect2: error: ld returned 1 exit status コンパイル失敗 – 
    
[/code]

### 追記

・Desktop版のRaspberry PiでGeanyを開き, そこにあるコンパイルのボタンを押しました.  
・OpenCVのバージョンは3.4.1です.


CC BY-SA 4.0
2018-09-06T02:02:20.277
48131
2019-04-18T02:02:20.427
2018-09-06T03:01:52.483
3060
30000
question
c++ opencv raspberry-pi
C++でOpenCVのプログラムをコンパイルできません


OpenCVの関数を呼び出そうとしている箇所で「定義が見つからない」とエラーになっているように見えますが、OpenCVのバージョンによって`Include`の記述が異なるようです。  
もし`2.x`以降をお使いなら`include`記述の部分を

[code]

    #include <opencv/cv.h> 
    #include <opencv/cxcore.h>
    #include <opencv/highgui.h>
    
[/code]

の様に`opencv/*`のサブディレクトリ名も含める必要があるようです。

参考:  
<http://hikopatchi.hatenablog.com/entry/2014/03/31/184937>  
<https://github.com/opencv/opencv/tree/3.4/include/opencv>


CC BY-SA 4.0
2018-09-06T02:35:10.427
48134
2018-09-06T02:51:11.007
2018-09-06T02:51:11.007
3060
3060
48131
answer