我一直试图将Arduino和Eclipse联系起来,我觉得我很接近。
我应该从哪里开始寻找这个?
类似的错误是由额外/不完整的报价块引起的(根据谷歌搜索)。我已经挖掘了我的AVR链接器设置以寻找引号,但没有太多运气。
我在正确的地方寻找吗?
我应该检查哪些文件?
我已经查看了我自己写的文件(在这种情况下,是基本的Arduino blink程序)。
**** Build of configuration Release for project C64_Arduino1 ****
make all
Building target: C64_Arduino1.elf
Invoking: AVR C++ Linker
avr-gcc --cref -s -Os -o"C64_Arduino1.elf" ./C64_Arduino1.o ./CDC.o ./HID.o
./HardwareSerial.o ./Print.o ./Stream.o ./Tone.o ./USBCore.o ./WInterrupts.o ./WMath.o ./WString.o ./malloc.o ./wiring.o ./wiring_analog.o ./wiring_digital.o ./wiring_pulse.o
./wiring_shift.o -l"Arduino_Mega_2560_or_Mega_ADK" -lm -L/Users/Chet/Desktop/Chet's Shit/Side Projects/Programming/C64_Arduino1/Release -L"/Users/Chet/Desktop/Chet's Shit/Side
Projects/Programming/C64_Arduino1" -mmcu=atmega2560
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
make: *** [C64_Arduino1.elf] Error 2
**** Build Finished ****
修改
除了main(它是空的)之外,我已经注释掉了我的所有代码(包括#include),但我仍然得到了错误。我已按照指定的Here和Here设置了我的IDE。仍然没有。
答案 0 :(得分:1)
查看实际的错误消息:
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
我可以看到问题很可能是由于某种Makefile语法错误造成的。
当您编写制定规则时,例如:
foo:
touch foo
做什么,它首先检查名为foo
的文件是否已经存在,如果没有,则运行命令/bin/sh -c 'touch foo'
。所以我们说touch foo
的行应该有有效的shell脚本语法。
查看最终运行的命令:
avr-gcc --cref -s -Os -o"C64_Arduino1.elf" ./C64_Arduino1.o ./CDC.o ./HID.o
./HardwareSerial.o ./Print.o ./Stream.o ./Tone.o ./USBCore.o ./WInterrupts.o ./WMath.o ./WString.o ./malloc.o ./wiring.o ./wiring_analog.o ./wiring_digital.o ./wiring_pulse.o
./wiring_shift.o -l"Arduino_Mega_2560_or_Mega_ADK" -lm -L/Users/Chet/Desktop/Chet's Shit/Side Projects/Programming/C64_Arduino1/Release -L"/Users/Chet/Desktop/Chet's Shit/Side
Projects/Programming/C64_Arduino1" -mmcu=atmega2560
我可以看到问题出在某些目录路径中的'
字符。您应该将其转义(如在"/Users/Chet/Desktop/Chet\'s Shit"
中),或者作为快速解决方法的符号链接或移动目录。
作为一般方法提示,您应首先检查一切是否在CLI中运行,然后继续教授Eclipse应该运行的命令。
另外,我会考虑使用名为 ino 的工具而不是make,它可能只适用于最低配置。我有一些使用Makefile取代Arduino IDE的经验,但是当你需要使用不同的主板并且可能同时连接多个主板时,它会变得毛茸茸。尝试 ino ,看起来很有希望。