質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.52%

OpenCVがコンパイルできません

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 12K+

erdes

score 32

C++でOpenCVを使おうとしていますが、コンパイルがうまくできません。

#include<iostream>
#include<opencv2/opencv.hpp>

int main(){
 cout<<"hello"<<endl;
 return 0 ;
}


というコードを書き、opencv.hppという名前で保存しターミナルから

C++ opencv.hpp


と打っていますが、

fatal error: 'opencv2/opencv.hpp' file not found


とエラーが出てしまいます。<opencv2/opencv.hpp>のところをいろいろ変えて試してみましたが、どう変えても出てくるエラーはほとんど同じです。
PATHが通っていないのかなと思いましたが、PATHをいろいろ変更してみてもダメでした。
どうすればコンパイルできるか教えていただけると助かります。

以下、環境や確認していることです。

  • OSは10.11.5
  • OpenCVは一応インストール済みです
$ brew tap homebrew/science
$ brew install opencv


はしてあります。

  • 普通にC言語とpythonは使える環境
  • Cのコンパイラは4.2.1?
    参考までに。
hiroshi-no-MacBook-Air:Pro-tr hiroshi$ gcc -dumpversion
4.2.1

hiroshi-no-MacBook-Air:Pro-tr hiroshi$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/4.2.1
Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
  • 現在のPATH
    (今回の本題とは関係ないところのPATHもありますが、一応そのまま載せます。
    というか、そもそもどこへPATHを通せばいいのでしょう汗)
hiroshi-no-MacBook-Air:Pro-tr hiroshi$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin:/usr/local/Library/Taps/homebrew/homebrew-python:/usr/local/Library/Taps/homebrew/homebrew-science:/usr/local/Cellar/2.4.12/include/opencv2/core

とりあえず、いろいろ調べたり、これまでの経験から必要になりそうな情報ですが、これ以外にも必要なものがあればおっしゃっていただければと思います。

#####追記

opencv.hppは確かにあるようです。

hiroshi-no-MacBook-Air:~ hiroshi$ cd /usr/local/Cellar/opencv/2.4.12/include/opencv2 
hiroshi-no-MacBook-Air:opencv2 hiroshi$ ls
calib3d            imgproc            opencv_modules.hpp
contrib            legacy            photo
core            ml            stitching
features2d        nonfree            superres
flann            objdetect        ts
gpu            ocl            video
highgui            opencv.hpp        videostab


PATHのほうもちょっと勘違いしていて、以下のものに修正しましたが、やはりエラーがでます。

hiroshi-no-MacBook-Air:Pro-tr hiroshi$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin:/usr/local/Cellar/opencv/2.4.12/include/opencv2
hiroshi-no-MacBook-Air:Pro-tr hiroshi$ C++ opencv.cpp -l /usr/local/Cellar/opencv/2.4.12/include
opencv.cpp:2:9: fatal error: 'opencv2/opencv.hpp' file not found
#include<opencv2/opencv.hpp>
        ^
1 error generated.
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • HogeAnimalLover

    2016/07/16 23:57

    開発。パソコンの中において「opencv2/opencv.hpp」なるファイルはどのディレクトリにあるのですか?ここにパスを通さないとインクルードできないです。OpenCVには詳しくありませんが、とりあえずインクルードの性質だけ

    キャンセル

回答 2

checkベストアンサー

0

PATHは実行ファイルの検索パスなので、そこにインクルードパスを設定しても無意味です。
CPATHという環境変数に設定してください。また、設定する際はincludeまでにしてください。opencv2まで入れてしまうとパスが通らなくなります。

参考:GCC4.2.4の環境変数の説明

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/17 22:12

    みなさんありがとうございました!コンパイルできました!
    CPATHに設定し、$C++ opencv.cpp -I パス名で行けました!

    キャンセル

0

こんにちは。

指定するべきPATHはインルード・パスです。

gcc ソースファイル名.cpp -Iここに"opencv2フォルダ"を含むフォルダ・パスを書く

また、opencv.hppという名前でソース・ファイルを保存するのは不適切です。
それでは、まるでopencvに付属しているヘッダ・ファイルのように見えてしまいますので、混乱を招きます。

このようなケースでは、main.cppとかtest.cppなどを使うことが多いかも。(ご自身が混乱しない名前ならなんでもよいです。ただし、拡張子はcppをお勧めします。)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/17 00:59

    失礼しました。ソースファイルのファイル名はopencv.cppで保存しています。誤植でした。
    質問の追記しますのでそちらも見ていただけると助かります。

    キャンセル

  • 2016/07/17 01:45

    > C++ opencv.cpp -l /usr/local/Cellar/opencv/2.4.12/include

    う~ん、これで良さそうな気がするのですが、あれ?
    オプションは小文字の l(エル)を指定していますか?
    インクルードパスの指定は大文字の I(アイ)ですよ。小文字の l(エル)はライブラリ指定の筈です。

    > C++ opencv.cpp -I/usr/local/Cellar/opencv/2.4.12/include

    ところで、お使いのコンパイラはメッセージを見る限りclang/LLVMのようです。
    clang/LLVMのオプションは把握していないので、違っていたらごめんなさい。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る