在OS X上连接Eclipse中的Arduino项目时出现意外的EOF

时间:2013-05-08 05:02:28

标签: eclipse macos linker arduino avr

我一直试图将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),但我仍然得到了错误。我已按照指定的HereHere设置了我的IDE。仍然没有。

1 个答案:

答案 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 ,看起来很有希望。