1

我正在尝试编写一个 makefile 来在 CLI 中编译我的示例 arduino 程序。我在这里使用默认的基本 makefile ,扩展它的 makefile 看起来像这样。

ARDUINO_DIR = /usr/share/arduino
BOARD_TAG = uno
ARDUINO_PORT = /dev/ttyACM0
ARDUINO_LIBS = 
include /usr/share/arduino/Arduino.mk

这就是我运行 make 时发生的事情。

$ make
cat build-uno/sketch.d > build-uno/depends.mk
make: *** No rule to make target `sketch.hex', needed by `all'.  Stop.

我也在makefile中尝试过这种东西(我在谷歌搜索时在网上看到它)

$(TARGET_HEX): bin/$(TARGET)

但这导致了这个

make: *** No rule to make target `bin/My', needed by `build-uno/My'.  Stop.

编辑 让它与崇高的文本一起工作,这对我来说已经足够了。我只是讨厌默认的 IDE。

4

3 回答 3

0

虽然我没有得到我最初希望的结果,但我得到了一个对我同样有效的解决方案(因为我根本不想要原始 IDE)。我只是用这个插件让它与崇高的文本一起工作。

对于任何特别想要 CLI 方式编译的人,我建议使用这个插件,然后查看设置文件并将它们复制到您的项目中。该项目的 git repo 在这里

于 2013-09-26T05:57:33.637 回答
0

您是否正在从头开始编写自己的 Makefile?

我也讨厌 Arduino IDE,更喜欢使用 ST2,所以我在这里使用 Sudar 的 Arduino Make 文件的个人分支:https ://github.com/WeAreLeka/Arduino-Makefile 它基于您正在使用的 makefile但有重大改进

以下是我为我的项目编写的说明:https ://github.com/WeAreLeka/moti/blob/master/USE.md

随意分叉和贡献!

希望能帮助到你!

于 2013-09-26T14:41:34.283 回答
0

这是由一个小的但 in 引起的Arduino-Makefile,如果您的 arduino 草图文件名中有任何空格,或者通向您的 arduino 草图的路径中的任何位置,它都会以这种方式失败。

一个简单的解决方案是确保任何文件夹或文件名中没有空格。

于 2019-12-02T18:27:30.000 回答