Compilation gcc

bonjour
je ne peux pas joindre le fichier mais on a un fichier objet que l'on doit transformer en executable avec gcc ce fichier contient des bugs on doit trouver les bugs avec ddd et il est impossible de le compiler
g tapé cette cmd
gcc -o bug -I /usr/includes -L /usr/lib -lcheck file2.o-linux
mais rien a faire il ne veut pas compiler
il affiche: /usr/lib/gcc/... ctr1.o undefined reference to main

comment faire
le prj est noté pr jeudi
merci par avance

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut.
    déjà, la commande -I... est inutile ensuite il manque un espace entre file2.o et -linux (etrange d'ailleur comme comande, j'aurai vu plutot -llinux)
    Est tu sur que le fichier objet a été compilé sur la même architecture ?
    vérifie qu'il y a bien un main dans 'file2.o'
    1. ce n'est pas une commande c le fichier objet ki s'appelle file2.o-linux
      1. Contributeur
        ok. possibilité : gcc se base souvent sur les extensions, il est possible qu'il ignore ou qu'il ne comprenne pas le fichier.
        Essai de le renommer en file2.o; avec un peu de chance ça debloquera le truc. Tu n'a pas répondu, as tu bien un main dans ton fichier objet?
        1. en fait ca ne compile pas non plus quend on change l'extension ;il n' y a pas de main ds le fichier d'origine le main se trouve ds checkFile2.c
          mais je ne c pas comment faire pr compiler

          merci de votre aide
          1. Modérateur
            Il n'y a pas d'espace entre -I et ses arguments.
            Pareil avec -L

            Normalement ça devrait être
            -I/usr/includes -L/usr/lib

            Mais bon ces repertoires sont normalement inclus par défaut pour gcc.
            D'ailleurs généralement c'est include au singulier.
            1. Contributeur
              Ok, on avait pas toute les donnée !!
              Pour compiler alors, il faut faire ça :
              gcc checkFile2.c -c -I/usr/includes
              tu obtient alors checkFile2.o. Ensuite:
              gcc -o bug -L/usr/lib checkFile2.o File2.o -lcheck
              et ça devrai fonctionner!