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 :

différence fichier compilé Ubuntu/Mandriva


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut différence fichier compilé Ubuntu/Mandriva
    Bonjour,

    J'ai développé en C un petit programme qui marche sous Ubuntu 10.
    Lorsque je l'utilisé sur un serveur Web dédié Mandriva, il ne marche plus.

    Lorsque je recompile mes sources directement sur le serveur Mandriva ça remarche.

    Le problème est que je dois aussi compiler un programme en Fortran et que je n'ai pas le compilateur sur le serveur dédié.
    Et quand je le compile sous Ubuntu puis l'envoie ça ne marche pas.


    Comment compiler depuis Ubuntun pour Mandriva ??

    ps: je passer par Windows pour l'envoie FTP, cela peut-il corrompre l'executable ?

    ps2: le programme est tout simple écire un fichier txt vide, je ne pense pas qu'il s'agisse d'un problème de librairie ??

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    plusieurs cas
    ton ftp n'est pas fait en mode binaire pour les binaires


    ton code est une erreur car il utilise des librairies spécifiques

    ton code est une double-erreur car non seulement il utilise des librairies specifiques mais en plus il testes pas l'environnement pour charger les bonnes selon la machine ou il est.

    apres je connais pas fortran donc je peux pas faire d'essais pour simuler le cas.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut
    J'ai testé le problème binaire en forçance FileZilla en mode binaire pour le transfert de l'executable, ça n'a rien changé.

    Ca ne marche pas non plus en C avec le code suivant (qui marche bien sous ubuntu):

    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
     
    #include <stdio.h>
     
    int main(){
        FILE *f;
        char filename[255];
        int i;
        for(i=1;i<2;++i){
            sprintf((char *) &filename,"%d.txt",i);
            printf("Je vais écrire %s\n",filename);
            f = fopen(filename,"w");
            if (f) fprintf(f,"X=%d  Y=%d\n",i,i+1);
            else fprintf(stderr,"Erreur : ne peut pas ouvrir %s\n",filename);
            fclose(f);
        }
        return 44;
    }
    En gros ça créé un fichier avec un peu de blabla dedans (code pourri mais c'est juste pour un test).

    J'ai l'impression que ce code n'appelle aucune librairie exotique, non ??

    Comment compiler en incluant tout ce qu'il faut ?
    Je fais:
    gcc file.c -o executable

    Merci

  4. #4
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Citation Envoyé par Mandarine Voir le message
    Lorsque je l'utilisé sur un serveur Web dédié Mandriva, il ne marche plus.

    Tu as une erreur au lancement (style ne peut trouver telle ou telle librairie en telle ou telle version), ou un plantage pendant le run ? Tu peux afficher ton log ?

    Est-tu sûr que ton ubuntu et ta mandriva sont toutes les deux du 32/64 bits, ou, que ta mandriva supporte les deux types d'exécutables.

    Quelles sont les versions de tes deux distro ?

    Ton exécutable dépend vraisemblablement d'une version de la libc qui n'est pas la même entre ubuntu et mandriva.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut
    Merci à vous pour vos pistes fructueuses !!

    Le problème était double.

    FTP pas en mode binaire.
    Problème de dépendance de librairies que j'ai corrigé en compilant en statique.

  6. #6
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    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
    $ ssh -l operateur undertaker
    operateur@undertaker's password: 
    Linux undertaker 2.6.32.2.100101 #4 SMP Thu Dec 31 17:57:44 CET 2009 i686
     
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
     
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    You have new mail.
    Last login: Fri Aug 27 16:33:40 2010 from 92.90.16.36
     
    operateur@undertaker:~$ cat > t.c
    #include <stdio.h>
     
    int main(){
        FILE *f;
        char filename[255];
        int i;
        for(i=1;i<2;++i){
            sprintf((char *) &filename,"%d.txt",i);
            printf("Je vais écrire %s\n",filename);
            f = fopen(filename,"w");
            if (f) fprintf(f,"X=%d  Y=%d\n",i,i+1);
            else fprintf(stderr,"Erreur : ne peut pas ouvrir %s\n",filename);
            fclose(f);
        }
        return 44;
    }
    operateur@undertaker:~$ gcc -O9 t.c -o tt
    operateur@undertaker:~$ uname -a
    Linux undertaker 2.6.32.2.100101 #4 SMP Thu Dec 31 17:57:44 CET 2009 i686 GNU/Linux
    operateur@undertaker:~$ exit
    $ scp operateur@undertaker:~/tt .
    operateur@undertaker's password: 
    tt                                            100% 6978     8.8KB/s   00:00    
    $ ./tt
    Je vais écrire 1.txt
    $ uname -a
    OpenBSD marvin.pagnol.net 4.7 GENERIC.MP#0 i386
    $
    le code est bon il passe bien d'un linux (1 proc monocore) à un openBSD (1 proc bi-core)

    et si un code aussi simple ne passe pas entre deux machines je pense que c'est plustot (vu que ce code de test utilise aucune library externe) un probleme de compatibilité 32/64 bits effectivement.

  7. #7
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Citation Envoyé par frp31 Voir le message
    (vu que ce code de test utilise aucune library externe)
    La libc, quand même Mais là, pas de bol, il devait avoir une version vraiement trop ancienne.

  8. #8
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par valefor Voir le message
    Quelles sont les versions de tes deux distro ?
    uname -a sur chaque machine serait idéal
    ainsi qu'un cat /proc/cpuinfo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] [Ubuntu 12.04] Fichiers compilés non exécutables
    Par Jjo_jack dans le forum Lazarus
    Réponses: 4
    Dernier message: 21/01/2013, 17h40
  2. Réponses: 2
    Dernier message: 17/10/2005, 18h55
  3. Exectution de mon fichier compilé impossible
    Par niCo.nb dans le forum C
    Réponses: 9
    Dernier message: 09/10/2005, 17h50
  4. Réponses: 3
    Dernier message: 02/10/2005, 12h30
  5. [Devcpp] fichier compilé plutôt gros
    Par YéTeeh dans le forum Dev-C++
    Réponses: 2
    Dernier message: 17/05/2005, 19h38

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