error:implicit declaration of function‘strlcpy’(以ubuntu24.04为例)

问题描述

解决方案

在内核中查询,查询不到。

根据报错信息查询strscpy,对比源码里string.h和内核里string.h的异同,以及接口的作用。

图1 string.h(源码)
图2 string.h(内核)

两者作用一样,所以在“host/ossl/linux/kernel/ossl_knl_linux.h”目录修改,如图3所示。

图3 修改

当定义了UBUNTU24_04时,选择对strlcpy进行正确定义。

#if defined(UBUNTU24_04)
#define strlcpy strscpy
#endif