使用 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 默认工具链编译