GNU/Linux >> Tutoriels Linux >  >> Linux

crt1.o :dans la fonction `_start' :- référence indéfinie à `main' sous Linux

Essayez d'ajouter -nostartfiles à vos options d'éditeur de liens, c'est-à-dire

$(LINK) -nostartfiles -g ...

À partir de la documentation de 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. 

Cela provoque crt1.o ne pas être lié (il est normalement lié par défaut) - normalement utilisé uniquement lorsque vous implémentez votre propre _start code.


-shared L'option de lien doit être utilisée lorsque vous compilez un .so


Le problème pour moi était, j'ai mis par erreur int main() dans un espace de noms. Assurez-vous de ne pas le faire, sinon vous obtiendrez cette erreur de lien ennuyeuse.

J'espère que cela aidera quelqu'un :)


Linux
  1. Vérifiez l'espace disque utilisé sur Linux avec du

  2. 40 commandes Linux de base utilisées fréquemment

  3. Linux - Utilisation réelle de la mémoire ?

  4. Linux - Surveillance à l'échelle du système des appels à une fonction de bibliothèque ?

  5. Erreur Linux c++ :référence indéfinie à 'dlopen'

Testez les applications GNOME sur cette plateforme de référence Linux

Fonction Python any() sous Linux

Les 7 espaces de noms Linux les plus utilisés

Commande d'écran sur Linux expliquée

90 commandes Linux fréquemment utilisées par les administrateurs système Linux

La commande dpkg sous Linux - Une référence pour les débutants