评论
你有没有设法解决这个问题?我一直试图让 Marlin 编译,但我遇到了这个问题。 |
不,它对我来说仍然不起作用。我正在认真考虑制作一个带有 scons 的替代构建系统,这使得依赖处理变得轻而易举。 我仍然不明白构建问题背后的核心问题。引用未从主模块导出的变量“starttime”也存在问题。 |
我设法修复了它,我将在接下来的几天中尝试对 git checkout 进行比较。 有多个问题,其中大部分是由于在多个 C 文件中定义的变量引起的,因此要修复它们,只需在标头中声明变量 extern 并在其中一个 C 文件中定义它们。如果您没有 SD 支持,还有一些未定义的定义,但由于 LCD 菜单想要显示 SD 相关的东西而出错,即使它不受支持。 |
哇谢谢 !等不及你的差异了! |
嗯,我刚刚检查了最新的 Arduino IDE(只需在其中打开 Marlin.pde),它编译得非常好。你能测试一下并告诉我你是否仍然有错误吗?或者您是否出于某种原因需要 Makefile/命令行方法? |
我会尝试 IDE,但从命令行构建对我来说是理想的选择。 |
它是用 IDE 构建的,我没有尝试上传它,因为我现在正在打印很长的内容。 你能发布你的补丁吗?如有必要,我愿意清理它,以便它可以包含在主分支中。至少,它会让我使用它。 |
我不确定在此处放置补丁的最佳方式是什么(之前从未使用过 GitHub),所以我将它放在我的评论中。请注意,我使用的是 jcrocholl 的 Marlin 分支(也在 GitHub 上),因此可能有一些细节与 ErikZalm 的文件不同。 让我知道我是否遗漏了什么,只是快速检查了差异。开始了:
|
谢谢 !这周我会仔细看看。我不明白 IDE 使用这些声明两次或未声明为 extern 的变量正确构建 Marlin 的机制。 |
我没有检查IDE是如何编译的,但是如果它是通过
|
好的,今晚我将测试它连接源文件并一次编译的理论,我猜那里有一个冗长的模式。 |
你能用三重反引号““`”引用你的差异吗? 再次感谢 ! |
Arduino 把所有的 PDE 文件一个接一个地抓起来(这很愚蠢)。但我正在努力使 Marlin 仅包含 .cpp 和 .h 文件。这使得使用其他 IDE 和 Makefile 进行编译变得更加容易。 |
在构建主文件并启用 LCD 支持时,似乎没有将 -mmcu=atmegaXXXX 选项传递给 GCC。由于每次运行时的错误消息都不同,因此构建过程中似乎存在未声明的依赖项。
取消注释这些行之一无济于事:
请指教。
第一次运行时的错误文本:
第二次 make 调用时的错误文本: