创建新组件时cmake只会build默认的两个文件,怎么添加其他文件[VScode+ESP-IDF]
Posted: Tue Nov 19, 2024 1:48 am
目标芯片:esp32-S3
我在使用VL53L0X激光测距仪模块,制造商ST提供有API函数,只需要在esp32-S3实现IIC接口。
API文件结构
API------->core-->inc->*.h..
API------->core-->src->*.c..
API-->platform-->inc->*.h..
API-->platform-->src->*.c..
我根据教程使用>esp-idf:create new esp-idf componet<添加一个新的组件,命名为MSL53L0,我将API中的[core][platform]迁移到MSL53L0中,代码移植未出现报错;组件内结构如下
MSL53L0-->core------->..
MSL53L0-->platform-->..
MSL53L0-->include---->MSL53L0.h
MSL53L0---------------->MSL53L0.c
MSL53L0---------------->CMakeLists.txt
其中CMakeLists.txt文件代码如下:
idf_component_register(SRCS "MS53L0.c" "core/src/" "platform/src/"
INCLUDE_DIRS "include" "core/inc/" "platform/inc/"
PRIV_REQUIRES driver)
编译完成后,在ld.exe的链接阶段出现API函数未定义情况,查找bulid文件发现,组件MSL53L0中libMS53L0.a的大小不正常,只有12KB,测试后发现仅有MSL53L0.h,MSL53L0.c两个文件成功编译后大小才这么小,剩余整个API都没有被编译。我该怎样写CMake文件才能在保持文件结构不变动的前提下使得整个API的文件全部被编译?
我在使用VL53L0X激光测距仪模块,制造商ST提供有API函数,只需要在esp32-S3实现IIC接口。
API文件结构
API------->core-->inc->*.h..
API------->core-->src->*.c..
API-->platform-->inc->*.h..
API-->platform-->src->*.c..
我根据教程使用>esp-idf:create new esp-idf componet<添加一个新的组件,命名为MSL53L0,我将API中的[core][platform]迁移到MSL53L0中,代码移植未出现报错;组件内结构如下
MSL53L0-->core------->..
MSL53L0-->platform-->..
MSL53L0-->include---->MSL53L0.h
MSL53L0---------------->MSL53L0.c
MSL53L0---------------->CMakeLists.txt
其中CMakeLists.txt文件代码如下:
idf_component_register(SRCS "MS53L0.c" "core/src/" "platform/src/"
INCLUDE_DIRS "include" "core/inc/" "platform/inc/"
PRIV_REQUIRES driver)
编译完成后,在ld.exe的链接阶段出现API函数未定义情况,查找bulid文件发现,组件MSL53L0中libMS53L0.a的大小不正常,只有12KB,测试后发现仅有MSL53L0.h,MSL53L0.c两个文件成功编译后大小才这么小,剩余整个API都没有被编译。我该怎样写CMake文件才能在保持文件结构不变动的前提下使得整个API的文件全部被编译?