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

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

新規登録して質問してみよう
ただいま回答率
85.50%
GTK+

GTK+とはGUIを作るために作られた、とても使いやすく機能に富んだツールキットです。クロスプラットフォームによる互換性と、使いやすいAPIを備えています。

OpenCV

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

3回答

9086閲覧

raspberryPi GTK+とOpenCVの追加(makefile作成方法)について

van

総合スコア7

GTK+

GTK+とはGUIを作るために作られた、とても使いやすく機能に富んだツールキットです。クロスプラットフォームによる互換性と、使いやすいAPIを備えています。

OpenCV

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

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2016/11/07 08:31

###前提・実現したいこと
環境:raspberryPi2
言語:C言語

OpenCVでカメラから静止画像を取得し、その結果をGTK+プログラミングで作成したウィンドウに表示しようとしています。
また、複数のソースファイルがあるため、コンパイルはmakefileを作成し実施しています。
コンパイルは通るのですが、実行ファイルを実行しようとすると下記エラーメッセージが表示しました。

エラーメッセージ:
Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported Trace/breakpoint trap

makefileの中身:
CC = gcc
CFLAGS = -02 -I/usr/local/include
DEST = /usr/local/bin
CPPFLAGS = -03 -I/usr/include/opencv -I/usr/include/opencv2
LDFLAGS = -lopencv_legacy -lopencv_highgui -lopencv_core -lopencv_ml -lopencv_video -lopencv_imgproc -lopencv_calib3d -lopencv_objdetect -L/usr/lib
GTK3FLAG = pkg-config --cflags gtk+-3.0

LIBS = -lhoge -lm
GTK_LIBS = pkg-config --libs gtk+-3.0

INCLUDE = -I/usr/include/opencv
OBJS = OBJ/main.o
OBJ/test.o

PROGRAM = TEST1
.SUFFIXES: .c .o
all: $(PROGRAM)
$(PROGRAM): $(OBJ)
$(CC) $(OBJ) $(LIBS) $(GTK_LIBS) -o $(PROGRAM)
.c .o $(CC) $(CFLAGS) -c $<
clean rm -f *.o *~$(PROGRAM)
install: $(PROGRAM)
install -s $(PROGRAM) $(DEST)

OBJ/main.o S/main.c
S/H/common.h
$(CC) $(CFLAGS) (GTK3FLAGS) -c $< -o $@
OBJ/test.o S/test.c
S/H/common.h
S/H/test.h
$(CC) $(CFLAGS) (INCLUDE) -c $< -o $@

試したこと
OpenCVのソースコードもしくはGTK+のソースコードどちらかをコメントアウトしてコンパイルを実施。実行ファイルを実行すると動作します。
makefileの書き方に問題があるのではないか、もしくはOpenCVとGTK+を同時にコンパイルするとエラーになるのでしょうか?
ご教授の程よろしくお願いします。

補足情報
・GTK+のソースコードはmain.cで作成。OpenCVのソースコードはtest.cで作成しています。
・GTK+は下記コマンドを実行し、インストールしています。
・sudo apt-get install libgtk-3-dev libgtk2.0-dev
・OpenCVのバージョンは2.4.9.1です。

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

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

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

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

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

guest

回答3

0

ベストアンサー

OpenCVは使った事がないけど、ググったら同様の質問・回答がstackoverflowにあったので貼っておきます。

投稿2016/11/07 14:46

katsuko

総合スコア3462

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

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

van

2016/11/08 01:15

katsukoさん わざわざ検索して頂き有難うございます。 質問内容の現象は同じようですが、解決には至りませんでした。
katsuko

2016/11/08 04:29

どのように解決にいたらなかったのでしょうか。 他のコメントに書かれているソースコードをgtk2を使用してビルドしてもダメだったのでしょうか。 (ちなみに、「#include <GTK/gtk.h>」は「#include <gtk/gtk.h>」の間違いですね。単にコメントに書いた際のタイプミスであれば、問題ありませんが) 原因はgtk2を使用してビルドされたOpenCVと、gtk3を一緒にビルドしているためだと思われるので、先のstackoverflowの回答のいずれかで解決しそうな気がするんですがねぇ。
van

2016/12/27 04:26

katsukoさん 回答が遅くなり大変申し訳ございません。また回答有難うございます。 gtk2に置き換えても結局ダメでした。 ちなみに下記指摘箇所はタイプミスでした。ご迷惑をお掛けし申し訳ございません。 >>(ちなみに、「#include <GTK/gtk.h>」は「#include <gtk/gtk.h>」の間違いですね。単に>>コメントに書いた際のタイプミスであれば、問題ありませんが) 色々と考えて試したりもしましたが、解決には至らなかったためOpenCVとGTKのプログラムを別で作成したいと思います。アドバイスを頂き有難うございます。
guest

0

OpenCVとGTKのプログラムを別で作成したいと思います。

投稿2016/12/28 03:04

van

総合スコア7

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

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

0

'GTK+ 2.x symbols detected. Using GTK+ 2.x'つまりGTK+ 2.xを使えとなってますね。

投稿2016/11/07 09:02

MasahikoHirata

総合スコア3747

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

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

episteme

2016/11/07 11:40

いや、 "2.x と 3 は同じプロセスでは使えない" です > Using GTK+ 2.x and GTK+ 3 in the same process is not supported 
van

2016/11/08 00:49

MasahikoHirataさん、epistemeさん ご回答有難うございます。 GTK+のソースコードを下記のように変更してもエラーメッセージは変わりませんでした。 最小限のソースコードにしてもエラーが発生しました。 #include <GTK/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_show(window); gtk_main(); return 0; } また、「試したこと」にも記載させていただきましたが、OpenCVのソースコードをコメントアウトすると正常に実行できるのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問