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

Autres éditeurs Discussion :

[GCC] Créer une lib à partir de plusieurs lib


Sujet :

Autres éditeurs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Par défaut [GCC] Créer une lib à partir de plusieurs lib
    Bonsoir à tous,

    Je suis entrain de créer un moteur 2d basé sur SDL et FMOD et je voudrais savoir si c'est possible de réorganiser tous les libs que j'utilise en une seule lib au lieu d'utiliser ma lib et linker toutes les autres(-lSDL -lSDL_image etc...) en utilisant par exemple juste -lmylib, sinon est ce que c'est possible avec les dll?
    comme vous le savez pour executer mon programme il lui faudrait toutes les dll
    SDL.dll SDL_image.dll etc... est-il possible de créer une seule dll mydll.dll par exemple

    j'ai fait quelques recherches sur le web rien de concluant...

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Salut manrugby

    Je ne pense pas que ce soit possible.
    Déjà parce qu'il te faudrait recompiler tes bibliothèques, donc avoir le code source. Tu ne peux pas avoir le code source de FMOD donc ce n'est pas possible

    Sinon si tu as les sources de tes bibliothèques je pense que tu peux tout à fait les rassembler
    Bien sûr il faut faire ça intelligement

  3. #3
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Tu peux le faire au niveau de librairies statiques en faisant le goret intégral, c'est à dire en fusionnant les divers modules composants ces librairies dans une nouvelle librairie (je crois que c'est ar / ranlib qui permet ça, de mémoire).
    Mais bon, c'est crasseux au possible et c'est un nid à emm.... si tu as des dépendances circulaires et/ou imbriquées, c'est hautement dépendant du compilateur utilisé, et c'est contraire à l'esprit même des librairies statiques.

    Par contre, si tu fabriques une DLL, alors ses dépendances internes seront résolues à la compilation, et tu n'auras donc qu'une seule et unique librairie d'importation à inclure. Mais à part si tu fais un effort sur les dépendances publiques, ça ne te dispensera pas de fournir les entêtes des librairies incluses pour pouvoir compiler ton exécutable final...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  4. #4
    Membre chevronné Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Par défaut
    Tu peux le faire au niveau de librairies statiques en faisant le goret intégral, c'est à dire en fusionnant les divers modules composants ces librairies dans une nouvelle librairie (je crois que c'est ar / ranlib qui permet ça, de mémoire).
    Mais bon, c'est crasseux au possible et c'est un nid à emm.... si tu as des dépendances circulaires et/ou imbriquées, c'est hautement dépendant du compilateur utilisé, et c'est contraire à l'esprit même des librairies statiques.

    Par contre, si tu fabriques une DLL, alors ses dépendances internes seront résolues à la compilation, et tu n'auras donc qu'une seule et unique librairie d'importation à inclure. Mais à part si tu fais un effort sur les dépendances publiques, ça ne te dispensera pas de fournir les entêtes des librairies incluses pour pouvoir compiler ton exécutable final..
    Bonne explication

    Pour conclure, si tes lib sont statiques, on peut dire que c'est possible (à part des exceptions...). Si elles sont dynamiques, personnellement je pense pas ....

  5. #5
    Membre chevronné Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    et c'est contraire à l'esprit même des librairies statiques.
    Ca peur paraître futile et hors contexte, mais c'est quoi "l'esprit" des librairies statiques ?

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par Lavock Voir le message
    Ca peur paraître futile et hors contexte, mais c'est quoi "l'esprit" des librairies statiques ?
    De ne pas être "autonomes" d'un point de vue édition de liens STATIQUES : ce ne sont, en gros, que de simples "tar" de fichiers objets, ni plus, ni moins. Ce ne sont pas des entités linkées, pas plus que ne l'est un .o / .obj du moins.
    Une DLL ou un exécutable sont, eux, autonomes du point de vue liens statiques.


    A opposer au liens dynamiques (chargement JIT de DLL / SO dans le code en fonction du contexte), qui de toutes façons ne se résolvent qu'à l'exécution bien entendu et non pas à la compilation / édition de liens statique... Et qui n'entrent donc pas en ligne de compte à ce niveau : du point de vue du linker, charger une DLL ou ouvrir un fichier, c'est la même chose, il ne fait que linker les primitives adéquates pour charger le fichier et non pas le fichier lui-même.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  7. #7
    Membre chevronné Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Par défaut
    OK merci !

Discussions similaires

  1. Créer une VUE à partir de plusieurs curseurs
    Par Djene dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/04/2014, 15h44
  2. Réponses: 4
    Dernier message: 01/12/2009, 03h58
  3. Réponses: 0
    Dernier message: 27/05/2009, 11h16
  4. [ImageMagick] Générer une image à partir de plusieurs images ?
    Par fichtre! dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/02/2005, 15h32
  5. Créer une video à partir d'images
    Par Akta3d dans le forum DirectX
    Réponses: 5
    Dernier message: 13/07/2004, 14h46

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