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

Systèmes de compilation Discussion :

Makefile: Build modules


Sujet :

Systèmes de compilation

  1. #1
    Membre averti Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Points : 386
    Points
    386
    Par défaut Makefile: Build modules
    Bonjour, bonsoir Hi salut lolkikooolol

    J'ai un dossiers modules dans lequel j'ai des .c
    Chaque .c représente un module (plugin) pour mon application, donc chaque .c doit être compilé en un .so (fichier1.c > libfichier1.so, fichier2.c > libfichier2.so).
    J'ai donc le makefile suivant mais il ne fonctionne pas Je ne suis surtout pas un guru du make mais si quelqu'un pouvait me le corriger ce serait génialous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .SUFFIXES: .c .o .so
     
    %.o: %.c
            gcc -fPIC -g -c -Wall $< -c
    %.so: %.o
            gcc -shared -Wl,-soname,$@ -o $@ $< -lc
    Ps: Ce bout je compte l'ajouter dans mon Makefile complet sous le label BUILD_MODULES pour pouvoir faire make BUILD_MODULES par la suite

    Merci
    Compil your life guy!
    The Aures Project

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Salut,

    J'ai testé avec le Makefile suivant et aucun problème. J'ai rajouté lib devant %.so. J'ai supprimé le -lc car implicitement on linke contre la libc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    .SUFFIXES: .c .o .so
     
    all: BUILD_MODULES
     
    BUILD_MODULES : libfichier1.so libfichier2.so
     
    %.o: %.c
    	gcc -fPIC -g -c -Wall $< -c
     
    lib%.so: %.o
    	gcc -shared -Wl,-soname,$@ -o $@ $<
    Quand je vois ceci, je suis bien content d'être passé à CMake pour gérer mes Makefiles. Voici ce que ça donne avec ton exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    PROJECT (Example C)
    ADD_LIBRARY (fichier1 SHARED fichier1.c)
    ADD_LIBRARY (fichier2 SHARED fichier2.c)
    Il n'y a que l'essentiel et c'est portable. Juste un coup de pub au passage...

  3. #3
    Membre averti Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Points : 386
    Points
    386
    Par défaut
    Bonjour, Bonsoir,...etc
    Merci aoyou pour ta réponse;
    Mais en fait j'ai mal expliqué ce que je veux faire, je n'ai pas que 2 fichiers à compiler c'est un dossier de module auquel j'ajoute des fichiers au fur et à mesur, donc on va dire que j'ai X fichiers dedans.
    Comment je dois appliquer cela ?

    Merci
    Compil your life guy!
    The Aures Project

  4. #4
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    deux solutions : la portable et celle qui ne l'est pas

    1- BUILD_MODULES : libfichier1.so libfichier2.so <- tu ajoutes tes fichiers au fure et a mesure

    2 - apres je crois qu'il y a une syntaxe du genre :
    BUILD_MODULES : (WILDCARD *.so) ou un truc ressemblant .... etant donne de l'heure j'ai pas le courage de regarder desuite mais le probleme c'est que ca risque de ne pas etre portable sous *BSD

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Il n'y a rien de magique. Tu dois ajouter tes fichiers un à un. Ou le wildcard peut effectivement être d'une aide précieuse pour lister.
    Toutefois, je m'inquiète de voir un fichier -> une librairie dynamique. Ca me paraît très curieux. Est-ce que ça a un sens ?

  6. #6
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    mini moteur de plugin
    j'ai fais un truc equivalent mais en cpp (je trouve qu'au final c plus propre)

  7. #7
    Membre averti Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Points : 386
    Points
    386
    Par défaut
    Salut.

    C'est la solution du wildcard que goundy veut en effet
    Sinon oui c'est un système de module que je fais
    Merci
    Compil your life guy!
    The Aures Project

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Voilà, si ça peut suffire à ton bonheur...
    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
     
    .SUFFIXES: .c .o .so
     
    all: BUILD_MODULES
     
    SRC=$(wildcard *.c)
    SO=$(SRC:.c=.so)
     
    BUILD_MODULES : $(addprefix lib, $(SO))
     
    %.o: %.c
    	gcc -fPIC -g -c -Wall $< -c
     
    lib%.so: %.o
    	gcc -shared -Wl,-soname,$@ -o $@ $<

  9. #9
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    a vu de nez j'aurais fais un truc du genre ...

    SRC= $(wildcard *.c)
    SO= $(SRC:.c=.so)

    %.o: %.c
    $(CC) -shared $*.so

    plugin : $(SO)

  10. #10
    Membre averti Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Points : 386
    Points
    386
    Par défaut
    \o/
    aoyou merci beaucoup ta solution marche niquel

    Daedric j'ai pas testé la tienne comme ça je ne te dois rien je crois que tu sais de quoi je parle mouhahahaha

    Merci à vous deux
    Compil your life guy!
    The Aures Project

  11. #11
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    bon ben j'attend que tu ai un autre probleme pour avoir ma gaterie :p

  12. #12
    Membre averti Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Points : 386
    Points
    386
    Par défaut
    Fait difflamatoire !
    J'exige un avocat nom d'un chien... Fake in vue !
    Compil your life guy!
    The Aures Project

  13. #13
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    il aime etre force alalal

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

Discussions similaires

  1. [Mvn2] Pb build modules vs build projet seul
    Par jaubert dans le forum Maven
    Réponses: 6
    Dernier message: 05/10/2007, 16h44
  2. makefile pour code divisé en module
    Par mencaglia dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/12/2006, 12h05
  3. [Continuum] Error de Build/Impossible de récuperer un module par ftp
    Par kalan dans le forum Intégration Continue
    Réponses: 11
    Dernier message: 08/09/2006, 15h18
  4. [Free Pascal] Makefile, modules & cie
    Par wilsony dans le forum Free Pascal
    Réponses: 3
    Dernier message: 02/09/2006, 13h17
  5. BUILD ERROR sur création d'un projet multi-modules
    Par elitost dans le forum Maven
    Réponses: 1
    Dernier message: 28/08/2006, 15h23

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