Make issue on Lubuntu Jammy 22.04.1 LTS (multiple definition of 'EXP_MAPPING')
Multi-platform inadyn, inadyn-advanced DDNS client fork.
Brought to you by:
bzbhoover
Hi! :) I'm trying to build inadyn-mt.v.02.28.10 on Lubuntu Jammy but I couldn't succeed. Everything is fine with the configure stage and even the build stage goes fine for a while but then I get the error attached. I've tried even with the previous version to no avail. I've tried to make a search linked with the error got about EXP_MAPPING but I haven't succeeded with finding anything which could led me in the right direction.
Thanks in advance for your advices!| :)
In src/dyndns.h at line 660, comment out (remove) the offending variable declaration, EXP_MAPPING.
Looks like new gcc compiler is the difference.
Send a patch!
Hi and thanks for your follow up. Just tried. Maybe I've done it wrong but I've commented lines between 649 and 660 (the EXP_MAPPING declaration) of dyndns.h and this leads to another compile error (linked with dyndns.c) arguing about the EXP_MAPPING type being undefined. Before it was declared too much times, now it isn't declared at all. :(
UPDATE: I've commented also a forward declaration I haven't noticed before and now something is changed (obviously): it no longer complains about undefined EXP_MAPPING but it gives a bunch of errors almost certainly linked with a different declaration of EXP_MAPPING which is invoked in the wrong way due to this (just my impression). I think my only chance is removing gcc and installing a much older version.
UPDATE: I've found this very well laid down guide. As soon as I would have the chance to do it, I'll try to install a gcc-4.8_4.8.5-4 (more or less contemporary with the latest inadyn-mt version) along with the already installed v11 and I'm confident I would succeed with building by it. I'd really like to patch the sources to achieve a successful build even with newer gcc versions but unfortunately this is beyond my very limited knowledge.
Last edit: Domenico 2023-02-08
struct EXP_MAPPING {
} EXP_MAPPING;
struct EXP_MAPPING {
} ;
Note the diference - removed the EXP_MAPPING on the last line, and kept the semicolon.
Cheers!