This service is available only in Japanese-language.
お世話になっております。掲題の件につきましてお尋ねいたします。
以前、こちら(https://yoctobbq.lineo.co.jp/?q=node/221)でPiGPIOのレシピを作成する方法についての記事があり、そちらを確認いたしました。
prefixを調整する、という結論だと理解しているのですが、Yocto環境ではインクルード用のディレクトリパスはどこに指定するのでしょうか?
$ devtool add pigpio https://github.com/joan2937/pigpio
で作成されたレシピファイルに上記リンクのトピックで提示されていたEXTRA_OEMAKEなどを追加し、devtool build-image core-imafge-baseをしたのですが、<pigpio.h>が見つからないという同様のエラーとなってしまいました。
作成したレシピは下記になります。
==========================================
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)
SUMMARY = "Raspberry Pi GPIO module"
HOMEPAGE = "http://abyz.me.uk/rpi/pigpio/python.html"
# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
#
# The following license files were not able to be identified and are
# represented as "Unknown" below, you will need to check them yourself:
# UNLICENCE
LICENSE = "unlicense.org"
LIC_FILES_CHKSUM = "file://UNLICENCE;md5=61287f92700ec1bdf13bc86d8228cd13"
SRC_URI = "git://github.com/joan2937/pigpio;protocol=https"
# Modify these as desired
PV = "1.46+git${SRCPV}"
SRCREV = "606d805324b0ecd3242441da9f03b24740d9ede4"
S = "${WORKDIR}/git"
inherit distutils3
# WARNING: the following rdepends are determined through basic analysis of the
# python sources, and might not be 100% accurate.
RDEPENDS_${PN} += "python3-core python3-io"
EXTRA_OEMAKE += "'prefix=${D}/usr/local'"
EXTRA_OEMAKE += "'exec_prefix=$(prefix)'"
EXTRA_OEMAKE += "'bindir=$(exec_prefix)/bin'"
EXTRA_OEMAKE += "'includedir=$(prefix)/include'"
EXTRA_OEMAKE += "'libdir=$(prefix)/lib'"
EXTRA_OEMAKE += "'mandir=$(prefix)/man'"
CFLAGS_prepend = "-I${S}/git -I${S}/usr/include"
==========================================
ご回答いただけますと幸いです。よろしくお願いいたします。
yakuhito
2020/8/26 (水) 11:00
エラーの詳細が提示されていないので、判断しかねますが……
pigpio.h は、は、git で取得したソースに含まれているのか、構築行う中で
生成されているのかで対応が変わります。
ソースに含まれている場合は、Makefileを生成する過程で、ヘッダーファイルの位置を指定するパッチを作成する
構築内で生成される場合は、Makefileの中で依存関係を明記するパッチを作成するか、並列構築を抑制するため
PARALLEL_MAKE = " -j 1 " と、並列構築を抑止する指定を追加することで対処可能かと。
これ以上の対応が必要な場合は、弊社営業 sales@lineo.co.jp 宛にお問い合わせいただければ
幸いです。
soimeme
2020/8/26 (水) 11:11
ご回答ありがとうございます。
yakuhito様
ご回答いただきありがとうございます。
失礼いたしました。エラーの概要は下記の通りです。
==========================================
i2c.c:10:10: fatal error: pigpio.h: No such file or directory
| 10 | #include <pigpio.h>
| | ^~~~~~~~~~
| compilation terminated.
| Makefile:100: recipe for target 'i2c.o' failed
| make: *** [i2c.o] Error 1
==========================================
自作しているオリジナルアプリケーションのソースコード内でインクルードしております。
pigpio.h自体はdevtool addした際にworkspace/sources/pigpio/以下に含まれております。
workspace/sources/pigpio内にあるMakefileを修正し、パッチファイルを作成する形でしょうか?また、その際に指定するインクルードパスはYoctoの場合どこを指定することになるのでしょうか?
yakuhito
2020/8/27 (木) 17:56
相対パスで指定可能であれば、それが良さそうですが……
実際のソースの展開場所のMakefileの有る場所から、ヘッダーファイルの存在する場所への
相対でのパス指定が可能であれば、そのようにMakefikeに記載する方法で良いかと。