Mit flachen Binaries geht das natürlich nicht. Wenn du deinen Code auf mehrere Module (also mehrere Objektdateien) verteilst, musst du sie am Ende zusammenlinken, um eine ausführbare Datei zu bekommen. Damit der Linker das hinkriegt, braucht er aber ein paar Zusatzinformationen, die eine flache Binary nicht hat. Du wirst also zumindest für die Objektdateien ein richtiges Format nehmen müssen. Den Linker, der diese Objektdateien verarbeitet, kannst du anschließend wieder eine flache Binary ausgeben lassen.