Versuchen Sie, -nostartfiles
hinzuzufügen zu Ihren Linker-Optionen, d.h.
$(LINK) -nostartfiles -g ...
Aus der gcc-Dokumentation:
-nostartfiles
Do not use the standard system startup files when linking. The standard system libraries are used normally, unless -nostdlib or -nodefaultlibs is used.
Dies verursacht crt1.o
nicht verlinkt werden (es ist normalerweise standardmäßig verlinkt) - wird normalerweise nur verwendet, wenn Sie Ihren eigenen _start
implementieren Code.
-shared
Link-Option muss verwendet werden, wenn Sie einen .so
kompilieren
Das Problem für mich war, dass ich versehentlich int main()
eingegeben habe in einem Namensraum. Stellen Sie sicher, dass Sie das nicht tun, sonst erhalten Sie diesen lästigen Link-Fehler.
Hoffe, das hilft jemandem :)