使用 yocto 配方 Makefile 引用 gcc,无法找到 stdint
Referencing gcc with yocto recipe Makefile, unable to find stdint
使用 Yocto 1.8 (fido),我使用一个简单的 yocto 配方 运行 Makefile
。
SUMMARY = "PCI kernel module"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=4a0f8ad6a793571b331b0e19e3dd925c"
inherit module
PR = "r0"
PV = "1.0"
SRC_URI = "file://Makefile \
file://COPYING \
file://code.c \
file://code.h \
"
S = "${WORKDIR}"
这里是 Makefile
。
obj-m := code.o
SRC := $(shell pwd)
all:
$(MAKE) -C $(KERNEL_SRC) M=$(SRC)
modules_install:
$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
clean:
rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
rm -f Module.markers Module.symvers modules.order
rm -rf .tmp_versions Modules.symvers
当运行在这个食谱上bitbake
时,我得到以下编译错误。
error: no include path in which to search for stdint.h
| # include_next <stdint.h>
| ^
如何配置此配方以在编译时包含 gcc
?
你的 code.c
长什么样?
您不能在模块中使用用户空间 header,据我所知,stdint.h
是来自用户空间的 header。
我认为这是工具链问题
如果您的文件是 .c 文件,请在 make 文件中使用 ${CC} 在 yocto 中进行编译。
文件是 .cpp 在 make 文件中使用 ${CXX}
然后它将使用 yocto 默认工具链编译
使用 Yocto 1.8 (fido),我使用一个简单的 yocto 配方 运行 Makefile
。
SUMMARY = "PCI kernel module"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=4a0f8ad6a793571b331b0e19e3dd925c"
inherit module
PR = "r0"
PV = "1.0"
SRC_URI = "file://Makefile \
file://COPYING \
file://code.c \
file://code.h \
"
S = "${WORKDIR}"
这里是 Makefile
。
obj-m := code.o
SRC := $(shell pwd)
all:
$(MAKE) -C $(KERNEL_SRC) M=$(SRC)
modules_install:
$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
clean:
rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
rm -f Module.markers Module.symvers modules.order
rm -rf .tmp_versions Modules.symvers
当运行在这个食谱上bitbake
时,我得到以下编译错误。
error: no include path in which to search for stdint.h
| # include_next <stdint.h>
| ^
如何配置此配方以在编译时包含 gcc
?
你的 code.c
长什么样?
您不能在模块中使用用户空间 header,据我所知,stdint.h
是来自用户空间的 header。
我认为这是工具链问题 如果您的文件是 .c 文件,请在 make 文件中使用 ${CC} 在 yocto 中进行编译。 文件是 .cpp 在 make 文件中使用 ${CXX}
然后它将使用 yocto 默认工具链编译