IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Erreur d'execution d'un programme


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut Erreur d'execution d'un programme
    Bonsoir tout le monde,

    J'essaye d'executer un programmes qui permet de trouver des programmes dans le PATH.
    Seulement, après compilation et execution il me renvoie ceci sur la console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ss_trouve_prog_ds_path: file not recognized: File format not recognized
    collect2: ld a retourné 1 code d'état d'exécution
    voici mon fichier ss_trouve_prog_ds_path :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    !/bin/sh
    # inpath - Vérifie qu'un programme donné existe en tant que tel,
    #        ou se trouve dans la liste de répertoires du PATH.
    in_path()
    {
      # Etant donnée une commande et le PATH, cherche la commande. Renvoie
      # 0 si elle est trouvée et éxecutable, 1 dans le cas contraire.
      # Attention! Ceci modifie temporairement l'IFS (le séparateur de champs
      # en entrée) mais le remet en place à la fin.
     
    cmd=$1  path=$2 retval=1
    oldIFS=$IFS   IFS=":"
     
    for directory in $path
    do
      if [ -x $directory/$cmd ] ; then
        retval=0 # si nous sommes là, nous avons trouvé $cmd dans directory
      fi
    done
    IFS=$oldIFS
    return $retval
    }
    checkForCmdInPath(){
      var=$1
     
     
      # Expliquons la notion du découpage de variable dans la
      # conditionnelle suivante: ${var#expr} renvoie tout ce qui suit
      # la portion de chaîne correspondant au motif 'expr' dans la
      # valeur de la variable (si le motif est reconnu), et
      # ${var%expr} renvoie tout ce qui ne correspond pas (dans le cas
      # présent, il s'agit du seul premier caractère). On peut encore
      # procéder en Bash en écrivant ${var:0:1} et faire appel à
      # cut: cut -c1
     
    if [ "$var" != "" ]
    then
      if [ "${var%${var#?}}" = "/" ] then
        if [ ! -x $var ]
        then
          return 1
        fi
        ! in_path $var $PATH ; then
        return 2
      fi
    fi
    }
     
    if [ $# -ne 1 ] ; then
            echo "Synthaxe: $0 commande" >&2 ; exit 1
    fi
     
    checkForCmdInPath "$1"
     
    case $? in
     0 ) echo "$1 trouvé dans le PATH"      ;;
     1 ) echo "$1 pas trouvé ou pas exécutable"     ;;
     2 ) echo "$1 pas trouvé dans le PATH"  ;;
    esac
     
    exit O
    quelqu'un sait-t-il ce que sa veut dire ??

    merci

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 838
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    Bonsoir tout le monde,

    J'essaye d'executer un programmes qui permet de trouver des programmes dans le PATH.
    Seulement, après compilation et execution il me renvoie ceci sur la console:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ss_trouve_prog_ds_path: file not recognized: File format not recognized
    collect2: ld a retourné 1 code d'état d'exécution
    voici mon fichier ss_trouve_prog_ds_path :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    !/bin/sh
    # inpath - Vérifie qu'un programme donné existe en tant que tel,
    #        ou se trouve dans la liste de répertoires du PATH.
    in_path()
    {
      # Etant donnée une commande et le PATH, cherche la commande. Renvoie
      # 0 si elle est trouvée et éxecutable, 1 dans le cas contraire.
      # Attention! Ceci modifie temporairement l'IFS (le séparateur de champs
      # en entrée) mais le remet en place à la fin.
     
    cmd=$1  path=$2 retval=1
    oldIFS=$IFS   IFS=":"
     
    for directory in $path
    do
      if [ -x $directory/$cmd ] ; then
        retval=0 # si nous sommes là, nous avons trouvé $cmd dans directory
      fi
    done
    IFS=$oldIFS
    return $retval
    }
    checkForCmdInPath(){
      var=$1
     
     
      # Expliquons la notion du découpage de variable dans la
      # conditionnelle suivante: ${var#expr} renvoie tout ce qui suit
      # la portion de chaîne correspondant au motif 'expr' dans la
      # valeur de la variable (si le motif est reconnu), et
      # ${var%expr} renvoie tout ce qui ne correspond pas (dans le cas
      # présent, il s'agit du seul premier caractère). On peut encore
      # procéder en Bash en écrivant ${var:0:1} et faire appel à
      # cut: cut -c1
     
    if [ "$var" != "" ]
    then
      if [ "${var%${var#?}}" = "/" ] then
        if [ ! -x $var ]
        then
          return 1
        fi
        ! in_path $var $PATH ; then
        return 2
      fi
    fi
    }
     
    if [ $# -ne 1 ] ; then
            echo "Synthaxe: $0 commande" >&2 ; exit 1
    fi
     
    checkForCmdInPath "$1"
     
    case $? in
     0 ) echo "$1 trouvé dans le PATH"      ;;
     1 ) echo "$1 pas trouvé ou pas exécutable"     ;;
     2 ) echo "$1 pas trouvé dans le PATH"  ;;
    esac
     
    exit O
    quelqu'un sait-t-il ce que sa veut dire ??

    merci
    Première ligne => remplace "!/bin/sh" par "#!/bin/sh"

    Et éventuellement, tu peux remplacer
    par
    Ca fait pareil mais c'est mieux écrit...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    oui en faite je l'ai juste oublier( le #) dans ma copie du code sur ce post
    sinon j'ai toujours cette erreur

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut

    ça ressemble à la lettre O et non à un zéro.

    à quoi correspond collect2?
    Dernière modification par Invité ; 21/09/2008 à 03h16.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    Seulement, après compilation et execution
    Après compilation?
    Les scripts ne se compilent pas; ils sont interprétés et exécutés directement par le shell.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Par défaut
    Tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ! in_path $var $PATH ; then
    Tu ne voulais pas avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ! in_path $var $PATH ; then
    ?

Discussions similaires

  1. erreur d'execution de mon programme en perl
    Par chella dans le forum Langage
    Réponses: 5
    Dernier message: 18/05/2011, 12h32
  2. erreur d'execution d'un programme
    Par marouene19 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 13/12/2010, 09h21
  3. Erreur: à l'execution d'un programme utilisant CURL
    Par webfranc dans le forum Dev-C++
    Réponses: 0
    Dernier message: 14/12/2008, 10h33
  4. Source Programme / Erreur d'execution
    Par ZIED dans le forum Delphi
    Réponses: 4
    Dernier message: 02/10/2006, 18h16
  5. Erreur Windows ! Dans l'execution d'un programme !
    Par Geoff! dans le forum OpenGL
    Réponses: 3
    Dernier message: 01/06/2006, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo