It would help to know the exact m-code.
Suggestions ...
1) See if the man-page for the exact link-error you get (e.g. "man LINK-123" or "man DCT-456" in the DC-Topo console) gives more specific insight (but it might be too general).
2) Examine at the DEF contents in an editor (it's an ASCII text file) to see if the top-level "DESIGN" name or any of the macros' hierarchical paths are wrong w.r.t. your netlist hierarchy.
3) Maybe you are forgetting to include a link path to a macro that is in the netlist.
Or you might be missing a path to the MW/FRAM view for a macro in the create_mw_lib or set_mw_lib_reference command.
Or you might have a problem with FRAM view consistency versus the Liberty/DB view, in which case you need to scrub through the log errors/warnings, and also not be inadvertently suppressing important ones (the check_library command can help with this).