首页 > 解决方案 > 使用不同的分支构建 NodeMCU 固件

问题描述

只有当我将它们克隆到单独的本地目录时,我才能为 NodeMCU 的所有分支构建固件,https://github.com/nodemcu/nodemcu-firmware 。

当我尝试只有一个文件夹并使用 git checkout 分支时,我只能构建主固件。当我签出分支时,其他文件会更改以匹配分支,但我无法构建固件。也许这就是它的方式?我希望我可以使用 git checkout master 然后 make 来构建主固件,然后使用 git checkout dev 然后 make 来构建开发固件。文件确实会更改以正确反映分支,所以我不确定它为什么不起作用。

标签: gitgithubesp8266nodemcu

解决方案


虽然@VonC 的回答肯定是有帮助的并且有些“正确”,但它也非常通用。

您可能正在努力解决的是 Git 子模块。我们将它们用于例如 u8g2 和 ucg。.gitmodules查看相应分支的内部以获取详细信息。

当您切换分支时,您需要更新子模块。git worktree在这里会非常方便,但由于仍然存在影响我从未尝试过的子模块处理的错误。

我怀疑您遵循了https://nodemcu.readthedocs.io/en/master/build/#git上的说明。对于ESP32 分支,我们记录了更多的构建指令,因为云构建器还不支持它。

结论:确保git submodule update --recursive每次切换分支时都运行。


推荐阅读