无法在OS X中编译和链接AVR程序

时间:2015-07-31 07:26:17

标签: arduino avr libc atmega avr-gcc

我正在使用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

1 个答案:

答案 0 :(得分:2)

上周我刚刚在GNU / Linux上遇到过这个问题。

实际上,编译器工作正常。问题的原因是对avr-libc的链接尝试失败。

avr-libc-1.8.1太老了,无法与GCC 5合作。虽然1.8.1avr-libc的最新版本,但它是在一年前发布的...... {的开发版本{1}}已更新以赶上GCC 5,您可以克隆subversion存储库:

avr-libc

自己编译。如果您不熟悉如何从源代码编译自己的自制工具链,那么网上有大量的文档和教程。