Compilation error in dev version: undefined reference to `runBedLeveling(int)'

I ran into the following compilation error while trying to compile the dev version of the firmware in the Arduino IDE v1.8.1. I'm using a RUMBA board. I read elsewhere on the forum that a 2nd download of firmware configured using the online tool might help, so I trashed the first two downloads and used the third and still received this error.

Arduino: 1.8.1 (Mac OS X), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

/var/folders/gc/6351t0j94pq94sqyrjvh277c0000gn/T//ccPKqV5B.ltrans2.ltrans.o: In function `okAction':
sketch/ui.cpp:2672: undefined reference to `runBedLeveling(int)'
collect2: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.


  • I use Arduino ver.1.6.12  and it compiles ok on dev.
    Even previouse versions of Marlin firwmare would not compile on the latest Arduino
  • edited January 13
    Thanks for that, I'll try an older version. Before trying with v1.8.1 I had tried with v1.6.4 and it also did not compile. Guess there's a sweet spot!
  • Downgraded to v1.6.12 and I receive the same error. I'm wondering if my libraries are updated to newer versions and that's the reason for the error.
  • Looks like you have a wrong setting maybe in bed leveling somewhere.
    If you are upgrading to dev version from the version 0.92 then you cannot load the 0.92 config.h, 
    you have to start from scratch
  • This happens if autoleveling is enabled but z probe not. Latest upload fixed that problem.
  • OK. With the new version I was able to compile it using Arduino 1.6.12. Didn't try on v1.8.1.

    NOTE: the new version would not compile unless the HAVE_HEATED_BED parameter was true ('1'). When it was false ('0'), the compiler threw the following error: 

    sketch/Commands.cpp: In static member function 'static void Commands::processMCode(GCode*)':
    Commands.cpp:1648: error: 'heatedBedController' was not declared in this scope
                 else if(com->hasH()) Extruder::setHeatedBedTemperature(heatedBedController.preheatTemperature + (com->hasO() ? com->O : 0),com->hasF() && com->F > 0);
    exit status 1
    'heatedBedController' was not declared in this scope 
  • Thanks for the hint. Will look at it and add a #if to solve problem. Until then just delete that line.
Sign In or Register to comment.