marlin
"Undefined reference to macro when AUTO_BED_LEVELING && !AUTO_BED_LEVELING_GRID
Macros *_PROBE_BED_POSITION are conditionally defined in Configuration.h, only when (AUTO_BED_LEVELING &&) AUTO_BED_LEVELING_GRID is enabled. This macro is referenced in
Bug fixed by commit e30bfedce4d
Type | UndeclaredIdentifier |
Config | "AUTO_BED_LEVELING && !AUTO_BED_LEVELING_GRID" (2nd degree) |
Fix-in | code |
Location | main/ |
#ifdef ENABLE_AUTO_BED_LEVELING #define AUTO_BED_LEVELING_GRID #ifdef AUTO_BED_LEVELING_GRID // set the rectangle in which to probe #define LEFT_PROBE_BED_POSITION 15 #else // not AUTO_BED_LEVELING_GRID // with no grid, just probe 3 arbitrary points. A simple cross-product // is used to esimate the plane of the print bed #define ABL_PROBE_PT_1_X 15 #endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING void process_commands(){ #ifdef ENABLE_AUTO_BED_LEVELING int left_probe_bed_position=LEFT_PROBE_BED_POSITION; // ERROR #ifdef AUTO_BED_LEVELING_GRID int xGridSpacing = left_probe_bed_position; #else float z_at_pt_1, z_at_pt_2, z_at_pt_3; #endif #endif } int main(int argc, char** argv) { process_commands(); return 0; }
diff --git a/simple/e30bfed.c b/simple/e30bfed.c --- a/simple/e30bfed.c +++ b/simple/e30bfed.c @@ -18,9 +18,9 @@ void process_commands(){ #ifdef ENABLE_AUTO_BED_LEVELING - int left_probe_bed_position=LEFT_PROBE_BED_POSITION; // ERROR #ifdef AUTO_BED_LEVELING_GRID + int left_probe_bed_position=LEFT_PROBE_BED_POSITION; int xGridSpacing = left_probe_bed_position; #else float z_at_pt_1, z_at_pt_2, z_at_pt_3;
#ifdef ENABLE_AUTO_BED_LEVELING #define AUTO_BED_LEVELING_GRID #ifdef AUTO_BED_LEVELING_GRID // set the rectangle in which to probe #define LEFT_PROBE_BED_POSITION 15 #else // not AUTO_BED_LEVELING_GRID // with no grid, just probe 3 arbitrary points. A simple cross-product // is used to esimate the plane of the print bed #define ABL_PROBE_PT_1_X 15 #endif // AUTO_BED_LEVELING_GRID #endif // AUTO_BED_LEVELING int main(int argc, char** argv) { #ifdef ENABLE_AUTO_BED_LEVELING int left_probe_bed_position=LEFT_PROBE_BED_POSITION; // ERROR #ifdef AUTO_BED_LEVELING_GRID int xGridSpacing = left_probe_bed_position; #else float z_at_pt_1, z_at_pt_2, z_at_pt_3; #endif #endif return 0; }
. call Marlin_main.cpp:1414: void process_commands() . ERROR 1737: int left_probe_bed_position=LEFT_PROBE_BED_POSITION;