Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 无法在OS X中编译和链接AVR程序_Arduino_Avr_Libc_Atmega_Avr Gcc - Fatal编程技术网

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

Arduino 无法在OS X中编译和链接AVR程序,arduino,avr,libc,atmega,avr-gcc,Arduino,Avr,Libc,Atmega,Avr Gcc,我正在使用Yosemite OS X开发Mac,我正在尝试用C语言编译一个程序,然后上传到我的Arduino上。我跟在后面 我试着重新安装AVRCC,但得到了相同的结果。我试着在我的系统上搜索文件crtatmega328p.o,但找不到它,目录也是如此 $avr gcc-Os-DF_CPU=16000000UL-mmcu=atmega328p-c-o Program.o Program.c $avr gcc-mmcu=atmega328p程序.o-o程序 /usr/local/lib/gcc/a

我正在使用Yosemite OS X开发Mac,我正在尝试用C语言编译一个程序,然后上传到我的Arduino上。我跟在后面

我试着重新安装AVRCC,但得到了相同的结果。我试着在我的系统上搜索文件
crtatmega328p.o
,但找不到它,目录也是如此

$avr gcc-Os-DF_CPU=16000000UL-mmcu=atmega328p-c-o Program.o Program.c
$avr gcc-mmcu=atmega328p程序.o-o程序
/usr/local/lib/gcc/avr/5.2.0/../../../../../../../../../../avr/bin/ld:找不到crtatmega328p.o:没有这样的文件或目录
/usr/local/lib/gcc/avr/5.2.0/../../../../../../../../../../avr/bin/ld:找不到-latmega328p
collect2:错误:ld返回了1个退出状态

上周我在GNU/Linux上遇到了这个问题

实际上,编译器工作得很好。问题的原因是针对
avr libc
的链接尝试失败

avr-libc-1.8.1
对于GCC 5来说太旧了。虽然
1.8.1
是avr libc的最新版本,但它是在一年前发布的。。。
avr libc
的开发版本已经更新,以赶上GCC 5,您可以克隆subversion存储库:

svn co svn://svn.savannah.nongnu.org/avr-libc/trunk

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

@Kavanai4据我所知,没有办法使用Arduino用纯C编程IDE@Kavanai4目前我只有Arduino,但我最终还是想在raw中编程AVR微控制器,而Arduino IDE对此毫无帮助。在我把钱花在新硬件上之前,我想先确保我能在Arduino上完成,因为我已经拥有了一个。你从哪里得到avr gcc的?我知道这不是一个解决方案,但我建议暂时回归到4.9.x。5.2.0似乎在寻找avr libc没有提供的对象文件,至少没有给定的文件名。@IgnacioVazquez Abrams:我安装了avr-gcc-4.9.0,错误消失了。我能够链接程序,创建一个十六进制文件,闪烁它,现在LED灯闪烁!请把你的评论作为一个答案,这样我可以给你的信用。