问题描述
因此,在正式的micropython存储库中发生更改并由于较早的esp-idf版本不兼容之后,我无法再构建外部C模块。我遵循了此官方文档中的确切步骤: https://docs.micropython.org/en/latest/develop/cmodules.html
我正在/ ports / unix文件夹中运行此命令:
USER_C_MODULES=../../../modules CFLAGS_EXTRA=-DMODULE_EXAMPLE_ENABLED=1 all
我得到的错误是:
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Including User C Module from ../../../modules/example
make: *** No rule to make target 'example/python/micropython/my_project/modules/example/example.c',needed by 'build-standard/genhdr/qstr.i.last'. Stop.
有什么想法吗?
解决方法
您需要 2 个 micropyhon.cmake
文件。 1 应该在您的根 modules
目录中,并作为您想要包含在编译中的所有模块的主包含。第二个应该在您的特定模块目录中。如果要包含多个模块,则每个模块都需要一个 micropython.cmake
文件。这些用于包含所有要编译的源代码。
拥有正确的 cmake
文件后,您可以通过将目录更改为相应的 micropython/ports/DesiredPort
子目录并使用命令行来编译:
make USER_C_MODULES=/path/to/your/modules/micropython.cmake all
您可以在以下链接中找到示例。
https://github.com/micropython/micropython/tree/master/examples/usercmodule