s.sato
2020年3月4日 14時57分
お世話になっております。
Armadillo-640(LCDオプション付き)でgtkを使用するアプリケーションを、ATDE7環境で作成しています。
おそらくgtkライブラリ設定の関係でコンパイルがうまくできていません。
■ 環境
ATDE7 : atde7-i386-20190703.tar.xz をダウンロードして利用
Makefile(アップロードのため拡張子.txtを追加しています)を添付いたします。
■ 背景
以前Armadillo-440向けに同アプリケーションをATDE5環境でコンパイルしていました。
これをArmadillo-640向けに、ATDE7環境でコンパイルしようとしています。
■ 現象
ATDE5使用時は、添付Makefileを利用してコンパイルし、うまく行っていましたが、
ATDE7では以下のようなメッセージが出てコンパイルできません。
arm-linux-gnueabihf-gcc -O2 -Wall -Wextra -I../common `PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig:/usr/arm-linux-gnueabihf/share/pkgconfig pkg-config --cflags gtk+-2.0` -c -o tchart.o tchart.c /bin/sh: 1: pkg-config: not found tchart.c:4:21: fatal error: gtk/gtk.h: そのようなファイルやディレクトリはありません #include <gtk/gtk.h> ^ compilation terminated. Makefile:38: ターゲット 'tchart.o' のレシピで失敗しました make: *** [tchart.o] エラー 1
このためまずはpkg-configを使用できるように
sudo apt-get install pkg-config
を行い、再度makeを行いました。今度は以下のようなメッセージとなります。
arm-linux-gnueabihf-gcc -O2 -Wall -Wextra -I../common `PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig:/usr/arm-linux-gnueabihf/share/pkgconfig pkg-config --cflags gtk+-2.0` -c -o tchart.o tchart.c Package gtk+-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-2.0' found tchart.c:4:21: fatal error: gtk/gtk.h: そのようなファイルやディレクトリはありません #include <gtk/gtk.h> ^ compilation terminated. Makefile:38: ターゲット 'tchart.o' のレシピで失敗しました make: *** [tchart.o] エラー 1
gtk+-2.0.pcがないようですが、入れ方がよくわからないので、とりあえずネットの情報を元に
sudo apt-get install libgtk2.0-dev
を実施しました。
====================================================
★ちなみにgtk+-2.0.pcは私のATDE5環境では
/usr/arm-linux-gnueabihf/lib/pkgconfig/gtk+-2.0.pc
/usr/arm-linux-gnueabi/lib/pkgconfig/gtk+-2.0.pc
あたりにあるようですが、これがデフォルトのATDE5に入っていたかどうかは、すみませんが定かではありません。
また上記はATDE7環境には存在しないようです。
====================================================
その後、再度makeした結果が以下となります。
arm-linux-gnueabihf-gcc -O2 -Wall -Wextra -I../common `PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig:/usr/arm-linux-gnueabihf/share/pkgconfig pkg-config --cflags gtk+-2.0` -c -o tchart.o tchart.c tchart.c: In function ‘cb_button_clicked’: (中略) tchart.c:332:13: warning: variable ‘gain’ set but not used [-Wunused-but-set-variable] float fs, gain; ^~~~ arm-linux-gnueabihf-gcc -O2 -Wall -Wextra -I../common `PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig:/usr/arm-linux-gnueabihf/share/pkgconfig pkg-config --cflags gtk+-2.0` `PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig:/usr/arm-linux-gnueabihf/share/pkgconfig pkg-config --libs gtk+-2.0` -o tchart lib/TS_IData.o tchart.o /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lgtk-x11-2.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lgdk-x11-2.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lpangocairo-1.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -latk-1.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lcairo が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lgdk_pixbuf-2.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lgio-2.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lpangoft2-1.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lpango-1.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lgobject-2.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lglib-2.0 が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lfontconfig が見つかりません /usr/lib/gcc-cross/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld: -lfreetype が見つかりません collect2: error: ld returned 1 exit status Makefile:33: ターゲット 'tchart' のレシピで失敗しました make: *** [tchart] エラー 1
試行錯誤で
sudo apt-get install libgtk2.0-dev:armhf
を行い、再makeしても
arm-linux-gnueabihf-gcc -O2 -Wall -Wextra -I../common `PKG_CONFIG_PATH=/usr/arm-linux-gnueabihf/lib/pkgconfig:/usr/arm-linux-gnueabihf/share/pkgconfig pkg-config --cflags gtk+-2.0` -c -o tchart.o tchart.c Package gtk+-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-2.0' found tchart.c:4:21: fatal error: gtk/gtk.h: そのようなファイルやディレクトリはありません #include <gtk/gtk.h> ^ compilation terminated. Makefile:38: ターゲット 'tchart.o' のレシピで失敗しました make: *** [tchart.o] エラー 1
のようなメッセージとなります。
何か良いアドバイス等ありましたら、ご教授いただけると幸いです。
ファイル | ファイルの説明 |
---|---|
Makefile.txt |
コメント
s.sato
at_makoto.sato
2020年3月4日 16時35分
佐藤です。
>
>
以下を試してもらえますでしょうか。
としてみて、Makefile 内で pkg-config している個所を、arm-linux-gnueabihf-pkg-config に変更し、$(PKGCONFIG_LIBDIR) は削除する。