OpenHarmony开发者论坛

标题: L0 轻量系统 文件系统中的fs 编译问题 [打印本页]

作者: skylyzhao    时间: 前天 18:46
标题: L0 轻量系统 文件系统中的fs 编译问题
[md]在定义了 `LOSCFG_LIBC_NEWLIB`的情况下
报错信息为:
../../../kernel/liteos_m/components/fs/vfs/vfs_fs.c:636: multiple definition of `write'; /opt/gcc-arm-none-eabi-10.3-2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc.a(lib_a-syswrite.o):syswrite.c.text.write+0x0): first defined here
是liteos_m中 文件系统的写操作重定义问题,和libc.a 重复了,我在STM32F429VGTx_FLASH.ld中增加排除系统自带库操作。
/DISCARD/ :
{
libc.a ( * )
libm.a ( * )
libgcc.a ( * )
}

目前解决方案是修改了vfs.c中函数的名称定义:

1.  `ssize_t write(int fd, const void *buff, size_t bytes)`改为
   `ssize_t __wrap_write(int fd, const void *buff, size_t bytes)`

2.  `FUNC_ALIAS(write, _write, (int fd, const void *buff, size_t bytes), ssize_t);`改为下面的

`   FUNC_ALIAS(__wrap_write, _write, (int fd, const void *buff, size_t bytes), ssize_t);`
请问还有其他办法能解决这个问题吗?
[/md]
作者: skylyzhao    时间: 前天 18:50
补充 openharmony V4.1r




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5