mbed OS 5 项目中链接了哪些文件?

What files are linked in an mbed OS 5 project?

我正在编写一个用于 mbed 5 的外部库(组件控制器),并计划在 mbed 存储库中提供它。我想编写测试来确认我的代码是否正常工作,但它们只是常规的普通单元测试,不需要在嵌入式控制器上 运行。我正在寻找 Catch 作为我的框架,它为测试套件提供了 main

当我使用 mbed CLI 或 Eclipse CDT(使用导出的项目)构建我的项目时,包含哪些 .cpp 个文件,以及哪些 .o 个文件link被嵌入图像了吗?该图像是否仅包含通过包含从我的 main.cpp 文件中提取的代码,或者它是否编译并且 link 所有 .cpp 文件可见(可能包括我的测试用例)?如果是后者,是否有一种干净的方法来排除它们,不会与内置的 utest 功能发生冲突?

包含所有 .cpp 个文件,但也有一些例外。 FEATURE_TARGET_ 文件夹是特殊的,只有当您的开发板具有特定功能(或者是特定目标的一部分)时才会添加。我认为 TESTS 也有一些特别之处。

您可以通过 mbed compile -v 查看输入编译器/链接器的确切命令,或者如果您想要一个简洁的列表,可以通过 mbed export -i make_gcc_arm 导出到 makefile,这将列出所有文件.

如果您想了解更多内部细节,或者想围绕这些编写脚本,所有逻辑都在 Python 模块中实现,您可以在自己的 Python 脚本中使用它获取将包含的 headers / symbols / defines / 等列表。例如,参见 vscode/__init.py__

注意:如果要排除某个文件或文件夹,可以通过.mbedignore.

进行