关于#c语言#的问题:编译安卓内核报错,求

使用Ubuntu编译安卓内核时报错
error: implicit declaration of function ‘fscrypt_enc_bio_mergeable’ [-Werror=implicit-function-declaration]

img

请问各位怎么解决,本人没接触过c语言,中途一些报错也通过搜索引擎解决了,这个报错实在是搞不懂了,虽然百度了一下说是挺简单的一个报错,但是奈何没有基础,搜到的解决方法看不懂,麻烦各位帮忙指导一下谢谢

内核
https://github.com/PixelExperience-Devices/kernel_google_bluecross
操作步骤是按照网络上一步步来的
下面是具体的操作过程

cd ./android_kernel_xiaomi_msm8998
sudo apt install build-essential openssl pkg-config libssl-dev libncurses5-dev pkg-config minizip libelf-dev flex bison  libc6-dev libidn11-dev rsync bc liblz4-tool  
sudo apt install gcc-aarch64-linux-gnu dpkg-dev dpkg git

export ARCH=arm64
export SUBARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-

make O=out sagit_defconfig
make O=out -j$(nproc)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    该问题是由于编译时未包含fscrypt头文件导致的,解决方法如下:

    1. 打开终端,进入内核代码目录,执行以下命令,安装必要的依赖项:
    sudo apt-get update
    sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
    
    1. 执行以下命令,获取fscrypt头文件:
    git clone https://github.com/torvalds/linux.git
    cd linux/include/
    sudo cp -r fscrypt /usr/include/
    
    1. 在编译内核前,打开终端,进入内核代码目录,执行以下命令,先清除编译缓存:
    make clean && make mrproper
    
    1. 编辑编译配置文件,打开终端,进入内核代码目录,执行以下命令:
    nano arch/arm64/configs/pixel_gcross_defconfig
    
    1. 在文件中添加以下内容:
    CONFIG_FSCRYPT=y
    
    1. 保存并退出nano。执行以下命令,生成编译配置文件:
    make pixel_gcross_defconfig
    
    1. 开始编译内核,执行以下命令:
    make -j4
    
    1. 等待编译完成后,若无报错,内核编译成功。

    2. 若依然报错,请在编译配置文件中添加以下内容:

    CONFIG_FSCRYPT_FS=y
    CONFIG_EXT4_ENCRYPTION=y
    
    1. 重新执行步骤6-7,编译内核。

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^