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

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

新規登録して質問してみよう
ただいま回答率
85.44%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

30015閲覧

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

erdes

総合スコア35

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2016/07/16 13:18

編集2016/07/16 16:07

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

C++

1#include<iostream> 2#include<opencv2/opencv.hpp> 3 4int main(){ 5 cout<<"hello"<<endl; 6 return 0 ; 7}

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

bash

1C++ opencv.hpp

と打っていますが、

bash

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

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

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

  • OSは10.11.5
  • OpenCVは一応インストール済みです

bash

1$ brew tap homebrew/science 2$ brew install opencv

はしてあります。

  • 普通にC言語とpythonは使える環境
  • Cのコンパイラは4.2.1?

参考までに。

bash

1hiroshi-no-MacBook-Air:Pro-tr hiroshi$ gcc -dumpversion 24.2.1 3 4hiroshi-no-MacBook-Air:Pro-tr hiroshi$ gcc --version 5Configured 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 6Apple LLVM version 7.3.0 (clang-703.0.31) 7Target: x86_64-apple-darwin15.5.0 8Thread model: posix 9InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
  • 現在のPATH

(今回の本題とは関係ないところのPATHもありますが、一応そのまま載せます。
というか、そもそもどこへPATHを通せばいいのでしょう汗)

bash

1hiroshi-no-MacBook-Air:Pro-tr hiroshi$ echo $PATH 2/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 3

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

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

bash

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

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

bash

1hiroshi-no-MacBook-Air:Pro-tr hiroshi$ echo $PATH 2/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin:/usr/local/Cellar/opencv/2.4.12/include/opencv2 3

bash

1hiroshi-no-MacBook-Air:Pro-tr hiroshi$ C++ opencv.cpp -l /usr/local/Cellar/opencv/2.4.12/include 2opencv.cpp:2:9: fatal error: 'opencv2/opencv.hpp' file not found 3#include<opencv2/opencv.hpp> 4 ^ 51 error generated. 6

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2016/07/16 14:57

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

回答2

0

ベストアンサー

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

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

投稿2016/07/16 16:53

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

erdes

2016/07/17 13:12

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

0

こんにちは。

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

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

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

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

投稿2016/07/16 15:30

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

erdes

2016/07/16 15:59

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

2016/07/16 16: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のオプションは把握していないので、違っていたらごめんなさい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問