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 :

Compilation sans tenir compte des version des libs


Sujet :

Linux

  1. #1
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut Compilation sans tenir compte des version des libs
    Bonsoir,

    J'aimerais compiler mon application linux dans un sens où elle ne tiendrai pas compte des versions des libs qu'elle utilise.

    Bien sûr, lors de la compilation, les libs seront dans leurs bonne version, mais j'aimerai que le programme ne reste pas dépendant de la version de ces libs séulement.

    Dans le cas où on voudrait exécuter le programme compilé avec une version antérieur d'une lib, mais celle-ci serait toujours binairement compatible.

    Serait-ce possible?

    Compilateur: g++

    Par avance, merci.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    qu'entends-tu par "lib" ? les tiennes ou celles utilisées par le compilo (standard) ???

    Si c'est les tiennes, c'est quasi automatique, sauf si tu as des API différentes entre versions....

    Il suffit de préciser dans le Makefile....

  3. #3
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Par exemple boost::filesystem, avec qui j'ai compilé étant sous Ubuntu Feisty Fawn, mais si je passe l'exécutable pour un utilisateur étant sous < Ubuntu Gutsy Gibbon ( Version plus récente de la distrib ) ( qui, a une version plus récente de boost::filesystem, mais cette dernière est toujours binairement compatible avec un programme compilé avec l'ancienne version ), le programme ne démarre plus car il demande spécialement la version avec laquelle il a été compilé.

    Pouvez-vous m'indiquer ce que je devrais marquer dans le Makefile pour que ça ne tienne pas compte des versions des librairies?

    Merci beaucoup

  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
    Parfois il faut faire un lien symbolique da l'ancienne lib vers la nouvelle.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ln -s /lib/foo-2.so /lib/foo-1.so

  5. #5
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Merci donc,

    C'est à essayer avant que je trouve une solution plus adaptée.

    Édit: Je suis preneur d'autres solution, si vous en avez donc, merci

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Happy Voir le message
    Par exemple boost::filesystem, avec qui j'ai compilé étant sous Ubuntu Feisty Fawn, mais si je passe l'exécutable pour un utilisateur étant sous < Ubuntu Gutsy Gibbon ( Version plus récente de la distrib ) ( qui, a une version plus récente de boost::filesystem, mais cette dernière est toujours binairement compatible avec un programme compilé avec l'ancienne version ), le programme ne démarre plus car il demande spécialement la version avec laquelle il a été compilé.

    Pouvez-vous m'indiquer ce que je devrais marquer dans le Makefile pour que ça ne tienne pas compte des versions des librairies?

    Merci beaucoup
    la solution donnée par valefor est la seule bonne pour ce que tu cites, car une librarie dynamique est linkée avec le lien physique (jmp au début physique de la routine sur le HD) , contrairement à une librairie statique où le code est recopié.

    Par conséquent il FAUT que la librairie soit au même endroit physique (même sous-répertoire, même nom) au runtime qu'au link.,

    Par conséquent la seule manière souple de faire ça est un lien logique (symbolique) qui pointera sur l'ancienne, mais créé au même emplacement et avec le même nom que la librairie ayant servi au link...

    En fait, il vaudrait d'ailleurs mieux dans ce cas créer le lien AVANT de linker, et linker sur ce lien...

  7. #7
    Membre émérite
    Avatar de Happy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 665
    Par défaut
    Je comprends, dans ce cas je mets résolu.

    Merci beaucoup pour votre aide.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/02/2014, 17h01
  2. Réponses: 2
    Dernier message: 26/09/2008, 12h23
  3. Recherche sans tenir compte des accents
    Par killerjeff dans le forum Access
    Réponses: 6
    Dernier message: 27/01/2007, 10h19
  4. Réponses: 2
    Dernier message: 11/01/2007, 11h28
  5. Réponses: 1
    Dernier message: 17/08/2006, 20h27

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