Ceedling配置出现No such file or directory错误,求解决方法
Ceedling 头文件找不到问题排查与解决
问题现象
编译时出现头文件缺失错误:
Linking test_omsec_api.txt... ../../source/dialog_sdk/sdk/app_modules/src/app_common/app_task.c:26:56: fatal error: rwip_config.h: No such file or directory #include "rwip_config.h" // SW configuration ^ compilation terminated. ../../source/dialog_sdk/sdk/app_modules/src/app_common/app_utils.c:46:23: fatal error: app_utils.h: No such file or directory #include "app_utils.h"
当前Ceedling路径配置:
:paths: :test: - +:test/** - -:test/support :source: - ../../source/** :support: - test/support :libraries: # [] - ../../source/dialog_sdk/sdk/** - ../../source/dialog_sdk/sdk/ble_stack/** - ../../source/dialog_sdk/sdk/app_modules/src/app_common/** - ../../source/dialog_sdk/sdk/platform/core_modules/rwip/api/**
已知rwip_config.h存在于../../source/dialog_sdk/sdk/platform/core_modules/rwip/api/目录。
排查与解决步骤
明确头文件搜索路径配置
Ceedling的:libraries主要用于指定链接库路径,头文件搜索应优先使用:source或专门的:includes块。修改配置添加:includes并明确缺失头文件的父目录::paths: :test: - +:test/** - -:test/support :source: - ../../source/** :support: - test/support :includes: - ../../source/dialog_sdk/sdk/platform/core_modules/rwip/api/ - ../../source/dialog_sdk/sdk/app_modules/src/app_common/ - ../../source/dialog_sdk/sdk/** :libraries: - ../../source/dialog_sdk/sdk/** - ../../source/dialog_sdk/sdk/ble_stack/**验证编译命令的包含参数
运行Ceedling时添加--verbose参数,查看实际编译命令是否包含正确的-I路径:ceedling test:omsec_api --verbose若未找到对应
-I参数,检查YAML配置的缩进是否统一(必须用空格,不能混用制表符),通配符**是否被正确解析。清理缓存后重新编译
Ceedling缓存可能残留旧配置,执行清理后重新测试:ceedling clean ceedling test:omsec_api补充直接路径规避递归解析问题
若递归通配符../../source/**未生效,可将缺失头文件的直接父目录单独添加到:source中::source: - ../../source/** - ../../source/dialog_sdk/sdk/platform/core_modules/rwip/api/ - ../../source/dialog_sdk/sdk/app_modules/src/app_common/
内容的提问来源于stack exchange,提问作者Flavio Andrade
相关产品推荐
相关产品推荐

