我在${STAGING_INCDIR}/botan-2中有可用的botan.h。我喜欢在我的yocto食谱和Makefile中使用它,我的理想是让Makefile中提到的“编译”而不是完全占据食谱。Attched是我的食谱和Makefile
recipe.bb
SUMMARY = "Makefile Demo"
SECTION = "apps"
LICENSE = "CLOSED"
DEPENDS = "botan"
APP_NAME = "integrated_app"
localdir = "/usr/local"
bindir = "${localdir}/bin"
TARGET_CC_ARCH += "${LDFLAGS}"
SRC_URI = "file://main.cpp \
file://Makefile \
"
S = "${WORKDIR}"
inherit pkgconfig
do_compile() {
# make -f Makefile
oe_runmake
}
do_install () {
install -m 0755 -d ${D}${localdir}
install -m 0755 -d ${D}${bindir}
cd ${S}
install -m 0755 ${APP_NAME} ${D}${bindir}
}
FILES_${PN}-dev = ""
FILES_${PN} = "${bindir}/*"Makefile
obj = main.o
target = integrated_app
S = "${WORKDIR}"
INC=/home/kjlau/yocto/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/botan-app/1.0-r0/recipe-sysroot/usr/include/botan-2
all: $(obj)
${CXX} ${CXXFLAGS} ${LDFLAGS} $(obj) -o $(target)
%.o:%.cpp
${CXX} ${CXXFLAGS} -I ${INC} -c $^ -o $@
.PHONY: clean
clean:
rm -rf $(obj) $(target)虽然它可以成功编译,但我想知道我们是否可以在Makefile中使用${STAGING_INCDIR}/botan-2?我试过了,但它不工作。我不认为我实现的Inc.是正确的,我的意思是它不够“普遍”,例如我不能假设每个用户都是kjlau,对吗?不管怎么说,让它变得更好?
谢谢
发布于 2020-07-15 03:29:11
你在找TARGET_CXXFLAGS。将以下内容添加到您的配方中:TARGET_CXXFLAGS += "-I ${STAGING_INC_DIR}/botan2"。在你的Makefile中不需要S=${WORKDIR}和INCDIR。
理想情况下,您应该在Makefile中添加一个安装目标,然后您的方法就会像下面这样简单:
SUMMARY = "Makefile Demo"
SECTION = "apps"
LICENSE = "CLOSED"
DEPENDS = "botan"
TARGET_CXXFLAGS += "-I ${STAGING_INC_DIR}/botan2"
SRC_URI = "file://main.cpp \
file://Makefile \
"
S = "${WORKDIR}"
inherit pkgconfig我不确定,但我会说你也不需要继承pkgconfig。
发布于 2021-04-09 01:14:19
对于oe_runmake,您可以设置EXTRA_OEMAKE += 'MY_SDK_PATH=${STAGING_DIR_TARGET}'并在Makefile中使用MY_SDK_PATH来引用头部、库等。
https://stackoverflow.com/questions/62893100
复制相似问题