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 :

Compiler un .c avec lib cURL en statique


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Par défaut Compiler un .c avec lib cURL en statique
    Bonsoir

    J'ai posté une contrib sur un site mais le problème, c'est que tous les membres n'ont pas la même version de *ix donc elle ne fonctionne pas chez tout le monde.

    Niveau compilation, j'ai fait un simple
    cc projet.c -o projet -lcurl
    Donc l'appel a la librairie cURL est et les versions de lib cURL diffèrent selon l'os ce qui crée une erreur exemple: "impossible de trouver la librairie dynamique libcurl2.9.so".

    Je souhaiterais donc compiler le programme en utilisant lib cURL en statique.

    Une idée serait donc la bienvenue, Merci d'avance

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015

  3. #3
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Par défaut
    Cool ça change

    Mais du coup le programme n'est plus compilé et je me retrouve avec pléthore d'erreurs :
    /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/libcurl.a(netrc.o): dans la fonction « Curl_parsenetrc »:
    (.text+0x443): AVERTISSEMENT: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from
    the glibc version used for linking
    /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/libcurl.a(hostip6.o): dans la fonction « Curl_getaddrinfo »:
    (.text+0x146): AVERTISSEMENT: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries f
    rom the glibc version used for linking
    /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/libcurl.a(connect.o): dans la fonction « singleipconnect »:
    (.text+0x370): AVERTISSEMENT: Using 'getprotobyname' in statically linked applications requires at runtime the shared librarie
    s from the glibc version used for linking
    /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/libcurl.a(url.o): dans la fonction « fix_hostname »:
    (.text+0x3a9): référence indéfinie vers « stringprep_check_version »
    Sans -static ça fonctionne bien sûr ...

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Les avertissements peuvent être ignorés sans problème, en revanche, pour la dernière erreurs, il faut ajouté

  5. #5
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2008
    Messages : 117
    Par défaut
    Tout d'abord, Merci beaucoup pour ton aide.

    Après une recherche GG j'ai bien compris l'utlité de linker la lib IDN

    Cependant, lorsque je fais un ld sur mon executable, celui sensé être "dynamically linked" donne ceci :
    ldd x
    linux-gate.so.1 => (0xffffe000)
    libcurl.so.3 => /usr/lib/libcurl.so.3 (0xb7f91000)
    libidn.so.11 => /usr/lib/libidn.so.11 (0xb7f61000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e2f000)
    libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7e13000)
    libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7d97000)
    libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7d72000)
    libcom_err.so.2 => /lib/libcom_err.so.2 (0xb7d6f000)
    libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7d6a000)
    libresolv.so.2 => /lib/tls/i686/cmov/libresolv.so.2 (0xb7d56000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7d52000)
    libssl.so.0.9.8 => /usr/lib/i686/cmov/libssl.so.0.9.8 (0xb7d13000)
    libcrypto.so.0.9.8 => /usr/lib/i686/cmov/libcrypto.so.0.9.8 (0xb7bd9000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb7bc5000)
    /lib/ld-linux.so.2 (0xb7fd6000)
    Et le "static" avec le link de librairie IDN donne le même résultat ... les dépendances sont donc les mêmes ?

    J'avais testé un -Wall qui fonctionnait, mais c'est du mercurochrome sur une jambe de bois non ?


  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par delete Voir le message
    Et le "static" avec le link de librairie IDN donne le même résultat ... les dépendances sont donc les mêmes ?
    ce n'est pas normal!

    Citation Envoyé par delete Voir le message
    J'avais testé un -Wall qui fonctionnait, mais c'est du mercurochrome sur une jambe de bois non ?
    absolument.

Discussions similaires

  1. Compiler un .c avec lib cURL en static
    Par delete dans le forum Linux
    Réponses: 0
    Dernier message: 07/03/2009, 23h58
  2. Réponses: 1
    Dernier message: 20/06/2008, 09h09
  3. Compilation en debug avec des lib en release
    Par Aradesh dans le forum MFC
    Réponses: 2
    Dernier message: 05/01/2007, 10h47
  4. Problème avec lib SDL
    Par Info-Rital dans le forum Linux
    Réponses: 8
    Dernier message: 02/07/2004, 20h59
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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