On windows, /DEF not added to link unless actually a DLL. The callback passed to define_needs may return fields which are functions; they will be passed the original arguments