我正在使用Yosemite OS X在Mac上工作,我试图在C中编译一个程序,然后我可以将其上传到我的Arduino上。我正在关注a tutorial。
我尝试了重新安装avr-gcc,但我得到了相同的输出。我尝试在我的系统上搜索文件crtatmega328p.o
,但它无处可寻,目录也是如此。
$ avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o Program.o Program.c
$ avr-gcc -mmcu=atmega328p Program.o -o Program
/usr/local/lib/gcc/avr/5.2.0/../../../../avr/bin/ld: cannot find crtatmega328p.o: No such file or directory
/usr/local/lib/gcc/avr/5.2.0/../../../../avr/bin/ld: cannot find -latmega328p
collect2: error: ld returned 1 exit status
答案 0 :(得分:2)
上周我刚刚在GNU / Linux上遇到过这个问题。
实际上,编译器工作正常。问题的原因是对avr-libc
的链接尝试失败。
avr-libc-1.8.1
太老了,无法与GCC 5合作。虽然1.8.1
是avr-libc
的最新版本,但它是在一年前发布的...... {的开发版本{1}}已更新以赶上GCC 5,您可以克隆subversion存储库:
avr-libc
自己编译。如果您不熟悉如何从源代码编译自己的自制工具链,那么网上有大量的文档和教程。