-1

I have the library RF24 and everything in my arduino library but for some reason it's not compiling. I don't know why. I posted the code and also the error message that the arduin IDE keeps showing. Please help me figure out whats wrong!

Arduino: 1.6.12 (Windows 7), Board: "Arduino/Genuino Uno"

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::read_register(unsigned char, unsigned char*, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::read_register(unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::write_register(unsigned char, unsigned char const*, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::write_register(unsigned char, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::openReadingPipe(unsigned char, unsigned long long)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::setAutoAck(bool)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::setAutoAck(unsigned char, bool)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::read_payload(void*, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::flush_rx()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::getDynamicPayloadSize()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::flush_tx()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::get_status()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::available(unsigned char*)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::print_status(unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::print_observe_tx(unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::print_byte_register(char const*, unsigned char, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::print_address_register(char const*, unsigned char, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::RF24(unsigned char, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::RF24(unsigned char, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::setChannel(unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::setPayloadSize(unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::getPayloadSize()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::stopListening()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::powerDown()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::powerUp()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::write(void const*, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::available()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::read(void*, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::whatHappened(bool&, bool&, bool&)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::openWritingPipe(unsigned long long)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::startListening()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::toggle_features()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::enableDynamicPayloads()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::enableAckPayload()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::writeAckPayload(unsigned char, void const*, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::isAckPayloadAvailable()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::isPVariant()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::testCarrier()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::testRPD()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::getPALevel()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::setDataRate(rf24_datarate_e)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::getDataRate()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::setCRCLength(rf24_crclength_e)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::getCRCLength()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::printDetails()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::disableCRC()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::setRetries(unsigned char, unsigned char)'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

libraries\RF24-master\RF24.cpp.o (symbol from plugin): In function `RF24::csn(bool)':

(.text+0x0): multiple definition of `RF24::begin()'

libraries\RF24ArduinoCommunicator-master\RF24.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

Multiple libraries were found for "nRF24L01.h"
 Used: C:\Users\Owner\Documents\Arduino\libraries\RF24ArduinoCommunicator-master
 Not used: C:\Users\Owner\Documents\Arduino\libraries\RF24-master
 Not used: C:\Users\Owner\Documents\Arduino\libraries\RF24-master
 Not used: C:\Users\Owner\Documents\Arduino\libraries\RF24-master
 Not used: C:\Users\Owner\Documents\Arduino\libraries\RF24-master
exit status 1
Error compiling for board Arduino/Genuino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Example I tried to compile:

/*
 Copyright (C) 2011 J. Coliz <[email protected]>

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 version 2 as published by the Free Software Foundation.
 */

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

//
// Hardware configuration
//

// Set up nRF24L01 radio on SPI bus plus pins 9 & 10 

RF24 radio(9,10);

//
// Topology
//

// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

//
// Role management
//
// Set up role.  This sketch uses the same software for all the nodes
// in this system.  Doing so greatly simplifies testing.  
//

// The various roles supported by this sketch
typedef enum { role_ping_out = 1, role_pong_back } role_e;

// The debug-friendly names of those roles
const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"};

// The role of the current running sketch
role_e role = role_pong_back;

void setup(void)
{
  //
  // Print preamble
  //

  Serial.begin(57600);
  printf_begin();
  printf("\n\rRF24/examples/GettingStarted/\n\r");
  printf("ROLE: %s\n\r",role_friendly_name[role]);
  printf("*** PRESS 'T' to begin transmitting to the other node\n\r");

  //
  // Setup and configure rf radio
  //

  radio.begin();

  // optionally, increase the delay between retries & # of retries
  radio.setRetries(15,15);

  // optionally, reduce the payload size.  seems to
  // improve reliability
  radio.setPayloadSize(8);

  //
  // Open pipes to other nodes for communication
  //

  // This simple sketch opens two pipes for these two nodes to communicate
  // back and forth.
  // Open 'our' pipe for writing
  // Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading)

  if ( role == role_ping_out )
  {
    radio.openWritingPipe(pipes[0]);
    radio.openReadingPipe(1,pipes[1]);
  }
  else
  {
    radio.openWritingPipe(pipes[1]);
    radio.openReadingPipe(1,pipes[0]);
  }

  //
  // Start listening
  //

  radio.startListening();

  //
  // Dump the configuration of the rf unit for debugging
  //

  radio.printDetails();
}

void loop(void)
{
  //
  // Ping out role.  Repeatedly send the current time
  //

  if (role == role_ping_out)
  {
    // First, stop listening so we can talk.
    radio.stopListening();

    // Take the time, and send it.  This will block until complete
    unsigned long time = millis();
    printf("Now sending %lu...",time);
    bool ok = radio.write( &time, sizeof(unsigned long) );

    if (ok)
      printf("ok...");
    else
      printf("failed.\n\r");

    // Now, continue listening
    radio.startListening();

    // Wait here until we get a response, or timeout (250ms)
    unsigned long started_waiting_at = millis();
    bool timeout = false;
    while ( ! radio.available() && ! timeout )
      if (millis() - started_waiting_at > 200 )
        timeout = true;

    // Describe the results
    if ( timeout )
    {
      printf("Failed, response timed out.\n\r");
    }
    else
    {
      // Grab the response, compare, and send to debugging spew
      unsigned long got_time;
      radio.read( &got_time, sizeof(unsigned long) );

      // Spew it
      printf("Got response %lu, round-trip delay: %lu\n\r",got_time,millis()-got_time);
    }

    // Try again 1s later
    delay(1000);
  }

  //
  // Pong back role.  Receive each packet, dump it out, and send it back
  //

  if ( role == role_pong_back )
  {
    // if there is data ready
    if ( radio.available() )
    {
      // Dump the payloads until we've gotten everything
      unsigned long got_time;
      bool done = false;
      while (!done)
      {
        // Fetch the payload, and see if this was the last one.
        done = radio.read( &got_time, sizeof(unsigned long) );

        // Spew it
        printf("Got payload %lu...",got_time);

        // Delay just a little bit to let the other unit
        // make the transition to receiver
        delay(20);
      }

      // First, stop listening so we can talk
      radio.stopListening();

      // Send the final one back.
      radio.write( &got_time, sizeof(unsigned long) );
      printf("Sent response.\n\r");

      // Now, resume listening so we catch the next packets.
      radio.startListening();
    }
  }

  //
  // Change roles
  //

  if ( Serial.available() )
  {
    char c = toupper(Serial.read());
    if ( c == 'T' && role == role_pong_back )
    {
      printf("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK\n\r");

      // Become the primary transmitter (ping out)
      role = role_ping_out;
      radio.openWritingPipe(pipes[0]);
      radio.openReadingPipe(1,pipes[1]);
    }
    else if ( c == 'R' && role == role_ping_out )
    {
      printf("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK\n\r");

      // Become the primary receiver (pong back)
      role = role_pong_back;
      radio.openWritingPipe(pipes[1]);
      radio.openReadingPipe(1,pipes[0]);
    }
  }
}

1 Answer 1

3

You have multiple copies of the library.

Delete the folder located at:

C:\Users\Owner\Documents\Arduino\libraries\RF24ArduinoCommunicator-master
2
  • ok I deleted that file now it says "void value not ignore as it out to be" and then the line "done = radio.read( &got_time, sizeof(unsigned long) );" is highlighted. Is there something that I missed? Commented Nov 12, 2016 at 23:54
  • You can't assign nothing (void) to something (boolean "done"). Use radio.available() instead to see if there's something in the buffer waiting to be read.
    – Avamander
    Commented Jul 22, 2017 at 18:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.