我一直在尝试编译一个机器人模拟。
我创建了一个名为 test.c 的空文件并尝试使用以下方法编译测试:
avr-gcc -mmcu=atmega328p test.c
AVR-GCC 已安装
copt@copt:~$ avr-gcc --version
avr-gcc (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
Este é um software livre; veja as fontes para as condições de cópia. NÃO HÁ
garantias; nem mesmo de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UMA FINALIDADE
ESPECÍFICA.
并返回这个:
/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o:
(.init9+0x0): reference not defined to "main"
collect2: erro: ld returned 1 exit status
与我一直在尝试创作的主要作品非常相似。我认为如果解决这个非常基本的问题,最大的问题就会解决。
FLAGS = -mmcu=atmega328p -Wall -gdwarf-2 -O3 -funsigned-char -funsigned- bitfields -fpack-struct -fshort-enums
应该可以正常编译了
对我来说,事实证明我已经将代码保存为默认的FILE类型。保存为.c文件后发现可以编译了
新版 Eclipse 2023 也发生在我身上。
在 Debian 11 上,我从“Market place”安装了插件,但它无法正常工作。 我不得不去 sourceforge 获取插件的最新版本 (2.4.2) 并手动将其安装在 Eclipse 中。 请注意,通过“新位置”方法安装也不起作用。一定要用“存档”方式安装
一切似乎都是正确的。
我为 AVR 创建了一个新的 C 项目,创建了一个 src 目录和一个我命名为 main.c 的新源文件 然后我在 main.c 文件中复制粘贴测试代码并尝试“构建项目”
我也遇到了错误: ...(.init9+0x0):引用未定义为“main”
当我尝试在控制台以命令行模式编译它时,遇到了同样的编译错误,我才意识到 main.c 文件实际上在硬盘上是空的。 我将 main.c 文件保存在 Eclipse 中,一切正常。