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

C Discussion :

Faire un lien a une librairie static (gcc Linux)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Par défaut Faire un lien a une librairie static (gcc Linux)
    Bonjour,

    Je suis en train de développer une librairie (.SO) en C sous Linux.
    Cette librairie doit manipuler une couche de communication sécurisée en utilisant OpenSSL.

    Mon problème c'est comment je peux intégrer cette librairie (libssl.a) dans mon projet.

    Note: J'utilise comme environnement de développement (ECLIPSE).

    Est-ce que quelqu'un peux m'aider?
    Merci.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Pour compiler avec une bibliothèque qui s'appelle par exemble libsample, contenue dans un fichier libsample.a qui est dans le dossier D:\Users\pgradot\Documents\C\, il faut ajouter les options suivantes à l'éditeur de liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -LD:\Users\pgradot\Documents\C\ -lsample
    Tu devrais donc avoir -lssl et éventuellement -L/un/endroit.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    Billets dans le blog
    1
    Par défaut
    Euh, il est sous Linux. Et des chemins comme C:\ ou D:\ sous Linux...
    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]

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -L/home/pgradot/Documents/C/
    T'es pas un peu relou toi ?

    Note: J'utilise comme environnement de développement (ECLIPSE).
    Si tu utilises CDT, tu cliques-droit sur le project, Properties, C/C++ Build / Settings / Linker / Miscellaneous et tu l'ajoutes dans Other objects. Cela doit avoir le même effet.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 475
    Par défaut
    Citation Envoyé par midou256 Voir le message
    Je suis en train de développer une librairie (.SO) en C sous Linux. Cette librairie doit manipuler une couche de communication sécurisée en utilisant OpenSSL. Mon problème c'est comment je peux intégrer cette librairie (libssl.a) dans mon projet.
    C'est faisable techniquement mais tu es en train de vouloir lier une bibliothèque statique au cœur d'une bibliothèque censée être dynamique. Pourquoi n'utilises-tu pas directement la version dynamique d'OpenSSL ?

    Il y a de fortes chances qu'elle soit déjà installé sur ton système ainsi que sur tous ceux que tu cibles, elle est relativement conséquente (en taille) par rapport à la tienne s'il s'agit d'une ébauche, et conserver une liaison dynamique t'assure une correction automatique des failles de sécurité lors des mises à jour, ce qui est critique pour les applications qui s'appuient dessus.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Par défaut
    Merci à tous.
    En fait je préfère d'utiliser une librairie OpenSSL statique que d'utiliser une librairie dynamique par ce que je croie que la librairie statique va être inclus avec le binaire de mon application au contraire d'une version dynamique que devrait être disponible dans le système là ou l'application va être déployé. Non?

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 475
    Par défaut
    Citation Envoyé par midou256 Voir le message
    Merci à tous.
    En fait je préfère d'utiliser une librairie OpenSSL statique que d'utiliser une librairie dynamique par ce que je croie que la librairie statique va être inclus avec le binaire de mon application au contraire d'une version dynamique que devrait être disponible dans le système là ou l'application va être déployé. Non?
    Si, mais c'est toujours le même problème. Si on a inventé les bibliothèques dynamiques, c'est parce qu'embarquer des bibliothèques statiques est un remède pire que le mal.

    Sache que l'exécutable final que tu vas produire aura de toutes façons des dépendances au système que tu es en train d'utiliser. Même si tu te restreins à la libc standard, l'exécutable durera un temps mais posera des problèmes dans cinq ou dix ans quand des mises à jour des versions majeures du système seront publiées. Ensuite, OpenSSL en soi est effectivement une dépendance mais c'est une bibliothèque très importante et utilisée par un grand nombre d'applications. Il y a donc des chances pour qu'elle soit de toutes façons installée par défaut sur les systèmes que tu utilises et elle fera l'objet d'une attention beaucoup plus soutenue de la part des mainteneurs dudit système.

    La meilleure façon, aujourd'hui, de distribuer un logiciel sous Linux consiste à écrire un package pour la distribution que tu cibles (par exemple *.deb ou *.rpm) car tu pourras y indiquer explicitement les dépendances requises ainsi que leur version, et le gestionnaire de package sera alors en mesure d'aller chercher automatiquement ce qui lui manque.

    Sinon, tu fais une archive qui contient tous les fichiers de ton application, DONT la libSSL, mais sans la lier directement à l'exécutable.

  8. #8
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Par défaut
    Merci beaucoup Obsidian pour les conseils et pour l'aide .

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

Discussions similaires

  1. [RegEx] faire un lien depuis une URL postée
    Par jexl dans le forum Langage
    Réponses: 7
    Dernier message: 16/05/2007, 14h58
  2. [VBA]faire un lien vers une page internet
    Par db48752b dans le forum IHM
    Réponses: 3
    Dernier message: 23/04/2007, 15h37
  3. faire le lien avec une image sur mon disque dur
    Par tsubasette dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 23/10/2006, 00h45
  4. Faire un Lien avec une variable javascript
    Par Arvulis dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 08/08/2006, 15h20
  5. [Excel] Faire des liens internes à une feuille
    Par Invité dans le forum Excel
    Réponses: 1
    Dernier message: 25/08/2005, 12h04

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