编译的时候老是发现存在重名的c和cpp文件怎么解决.md 3.4 KB

写代码的时候由于国际的协议库的打包解包是从git上拉下来的独立库,为了不干扰。重新按照开源库仿写了一个国标库,因为最初写的时候是尾缀c文件,后面看模块库里都是cpp结尾,所以改过一遍,但是后续一直编译报错出现当前不存在的文件,告诉我重复定义,后面找到方法就是清空adruino的缓存,从新编译

/home/zhuts/.arduino15/packages/esp32/tools/xtensa-esp32s3-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/libraries/libopendroneid/opendroneid.c.o:/home/zhuts/Arduino/libraries/libopendroneid/opendroneid.c:22: multiple definition of `ALT_ADDER'; /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/sketch/cndroneid.c.o:/home/zhuts/arduremoteid/RemoteIDModule/cndroneid.c:22: first defined here
/home/zhuts/.arduino15/packages/esp32/tools/xtensa-esp32s3-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/libraries/libopendroneid/opendroneid.c.o:/home/zhuts/Arduino/libraries/libopendroneid/opendroneid.c:21: multiple definition of `ALT_DIV'; /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/sketch/cndroneid.c.o:/home/zhuts/arduremoteid/RemoteIDModule/cndroneid.c:21: first defined here
/home/zhuts/.arduino15/packages/esp32/tools/xtensa-esp32s3-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/libraries/libopendroneid/opendroneid.c.o:/home/zhuts/Arduino/libraries/libopendroneid/opendroneid.c:20: multiple definition of `LATLON_MULT'; /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/sketch/cndroneid.c.o:/home/zhuts/arduremoteid/RemoteIDModule/cndroneid.c:20: first defined here
/home/zhuts/.arduino15/packages/esp32/tools/xtensa-esp32s3-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/libraries/libopendroneid/opendroneid.c.o:/home/zhuts/Arduino/libraries/libopendroneid/opendroneid.c:19: multiple definition of `VSPEED_DIV'; /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/sketch/cndroneid.c.o:/home/zhuts/arduremoteid/RemoteIDModule/cndroneid.c:19: first defined here
/home/zhuts/.arduino15/packages/esp32/tools/xtensa-esp32s3-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32s3-elf/8.4.0/../../../../xtensa-esp32s3-elf/bin/ld: /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/libraries/libopendroneid/opendroneid.c.o:/home/zhuts/Arduino/libraries/libopendroneid/opendroneid.c:18: multiple definition of `SPEED_DIV'; /tmp/arduino-sketch-AE3A5265B49B6AD427643A5AC79A65FA/sketch/cndroneid.c.o:/home/zhuts/arduremoteid/RemoteIDModule/cndroneid.c:18: first defined here
collect2: error: ld returned 1 exit status

# 1. 首先确保 .c 文件已被移除
cd /home/zhuts/arduremoteid/RemoteIDModule/
ls -la *.c  # 确认没有 .c 文件了

# 2. 清理 Arduino 缓存
rm -rf /tmp/arduino-sketch-*
rm -rf /tmp/arduino_build_*
rm -rf /home/zhuts/.arduino15/cache/*
rm -rf /home/zhuts/.arduino15/tmp/*

image-20260304161805976

清除后再编译就成功了。