GNU/Linux >> Znalost Linux >  >> Linux

crt1.o:Ve funkci `_start':- nedefinovaný odkaz na `main' v Linuxu

Zkuste přidat -nostartfiles na vaše možnosti linkeru, tj.

$(LINK) -nostartfiles -g ...

Z dokumentace gcc:

-nostartfiles
    Do not use the standard system startup files when linking. The standard system libraries are used normally, unless -nostdlib or -nodefaultlibs is used. 

To způsobí crt1.o nesmí být propojen (ve výchozím nastavení je normálně propojen) – obvykle se používá pouze tehdy, když implementujete svůj vlastní _start kód.


-shared možnost odkazu musí být použita při kompilaci .so


Problém pro mě byl, že jsem omylem uvedl int main() ve jmenném prostoru. Ujistěte se, že to nedělejte, jinak se zobrazí tato otravná chyba odkazu.

Doufám, že to někomu pomůže :)


Linux
  1. Kde je funkce itoa v Linuxu?

  2. Zkrácení souboru během jeho používání (Linux)

  3. Chyba Linux c++:nedefinovaný odkaz na 'dlopen'

  1. fflush() v Linuxu nefunguje

  2. copy_to_user nedefinováno v linuxovém jádře verze 4.12.8

  3. Dynamické propojení – Linux vs. Okna

  1. Zkontrolujte použité místo na disku v systému Linux pomocí du

  2. 40 Základních často používaných příkazů Linuxu

  3. Funkce Python any() v Linuxu