Skip to content

Copied file src/rtl_433/decoder_util copy.c yeilds linker issues #215

Description

@SilverCory

The file src/rtl_433/decoder_util copy.c is upon linking yeilds errors such as the following:

/data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: .pioenvs/esp32-rf433-cc1101-hub/libff4/rtl_433_ESP/rtl_433/decoder_util.c.o: in function `decoder_log_bitrow':

/IDF_PROJECT/.piolibdeps/esp32-rf433-cc1101-hub/rtl_433_ESP/src/rtl_433/decoder_util.c:196: multiple definition of `decoder_log_bitrow'; .pioenvs/esp32-rf433-cc1101-hub/libff4/rtl_433_ESP/rtl_433/decoder_util copy.c.o:/IDF_PROJECT/.piolibdeps/esp32-rf433-cc1101-hub/rtl_433_ESP/src/rtl_433/decoder_util copy.c:209: first defined here

/data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: .pioenvs/esp32-rf433-cc1101-hub/libff4/rtl_433_ESP/rtl_433/decoder_util.c.o: in function `decoder_logf_bitrow':

/IDF_PROJECT/.piolibdeps/esp32-rf433-cc1101-hub/rtl_433_ESP/src/rtl_433/decoder_util.c:227: multiple definition of `decoder_logf_bitrow'; .pioenvs/esp32-rf433-cc1101-hub/libff4/rtl_433_ESP/rtl_433/decoder_util copy.c.o:/IDF_PROJECT/.piolibdeps/esp32-rf433-cc1101-hub/rtl_433_ESP/src/rtl_433/decoder_util copy.c:241: first defined here

collect2: error: ld returned 1 exit status

I've got a pre-build script to remove it atm

esphome:
  platformio_options:
    extra_scripts:
      - pre:/config/esphome/remove_dup.py
import os
import glob
Import("env")

print("\n[WORKAROUND] Searching for accidental duplicate file 'decoder_util copy.c'...\n")

# PlatformIO stores downloaded libraries in either .pio or .piolibdeps
search_paths = [
    os.path.join(env.get("PROJECT_WORKSPACE_DIR", ".pio"), "**", "decoder_util copy.c"),
    os.path.join(env.get("PROJECT_DIR", ""), ".piolibdeps", "**", "decoder_util copy.c")
]

for path in search_paths:
    for file_path in glob.glob(path, recursive=True):
        if os.path.exists(file_path):
            print(f"-> Deleting duplicate to fix build: {file_path}")
            os.remove(file_path)

Using this in conjunction with:
https://github.com/SilverCory/esphome_rtl433

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions