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 :

Compilation de library.a


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Par défaut Compilation de library.a
    Bonjour,

    actuellement j'ai un ensemble de fonction que j'utilise quotidiennement.
    C'est fonction etant chacune dans un fichier.c j'ai cree, sous FreeBSD une library.a.

    Aujourd'hui je suis face a la portabilite, j'aimerais donc savoir comment modifier mon Makefile actuel pour compiler cette library sur SunOS et linux

    Voici mon Makefile:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    CC              =       gcc
     
    AR_FreeBSD      =       ar -r
    AR_solaris      =       /usr/ccs/bin/ar -r
    AR_linux        =       ar -r
    AR              =       $(AR_${OSTYPE})
     
    RANLIB_FreeBSD  =       ranlib
    RANLIB_solaris  =       /usr/ccs/bin/ranlib
    RANLIB_linux    =       ranlib
    RANLIB          =       $(RANLIB_${OSTYPE})
     
    NAME_FreeBSD    =       libmy_`uname -m`-`uname -s`.a
    NAME_solaris    =       libmy_`uname -m`-`uname -s`.a
    NAME_linux      =       libmy_linux.a
     
    DIR_INC         =       ./Headers/
     
    RM              =       rm -f
    MISC            =       *~ *.o \#*\#
     
    SRC     =       get_next_line.c my_epurstr.c my_factorielle_rec.c       \
                    my_find_prime_sup.c my_getnbr.c my_getnbr_base.c        \
                    my_is_prime.c my_power_rec.c my_printf.c my_puterror.c  \
                    my_putchar.c my_putnbr.c my_putnbr_base.c my_putstr.c   \
                    my_revstr.c my_showmem.c my_sort_int_tab.c              \
                    my_square_root.c my_str_to_wordtab.c my_strcat.c        \
                    my_strcmp.c my_strcpy.c my_strdup.c my_strlcat.c        \
                    my_strlen.c my_strncat.c my_strncmp.c my_strncpy.c      \
                    my_strstr.c my_strxcpy.c my_swap.c my_use.c my_xmalloc.c\
                    my_open.c my_aff_dtab.c my_perror.c
     
    SRC2    =       my_epurstr.c my_factorielle_rec.c                       \
                    my_find_prime_sup.c my_getnbr.c my_getnbr_base.c        \
                    my_is_prime.c my_power_rec.c my_puterror.c              \
                    my_putchar.c my_putnbr.c my_putnbr_base.c my_putstr.c   \
                    my_revstr.c my_showmem.c my_sort_int_tab.c              \
                    my_square_root.c my_str_to_wordtab.c my_strcat.c        \
                    my_strcmp.c my_strcpy.c my_strdup.c my_strlcat.c        \
                    my_strlen.c my_strncat.c my_strncmp.c my_strncpy.c      \
                    my_strstr.c my_strxcpy.c my_swap.c my_xmalloc.c         \
                    my_open.c my_aff_dtab.c my_perror.c
     
    OBJ             =       $(SRC:.c=.o)
    OBJ2            =       $(SRC2:.c=.o)
     
    IFLAGS          =       -I$(DIR_INC)
    CFLAGS          =       $(IFLAGS)
     
    all:            $(NAME_${OSTYPE})
    $(NAME_FreeBSD):        $(OBJ)
            @$(AR) $(NAME_${OSTYPE}) $(OBJ)
            @$(RANLIB) $(NAME_${OSTYPE})
     
    $(NAME_solaris):
            @$(AR) $(NAME_${OSTYPE}) $(OBJ2)
            @$(RANLIB) $(NAME_${OSTYPE})
     
    $(NAME_linux):
            @$(AR) $(NAME_${OSTYPE}) $(OBJ2)
            @$(RANLIB) $(NAME_${OSTYPE})
     
    clean:
            @$(RM) $(MISC)
     
    fclean:         clean
            @$(RM) $(NAME_${OSTYPE})
     
    re : fclean $(NAME_${OSTYPE})
     
    .PHONY: all $(NAME_${OSTYPE}) clean fclean re
    Merci de vos commentaire.

  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
    Citation Envoyé par blazed Voir le message
    C'est fonction etant chacune dans un fichier.c j'ai cree, sous FreeBSD une library.a.
    ces

    Sinon, ben ça dépend, mais là tu n'as pas l'air d'avoir grand'chose de dépendant..

    Une des choses à faire pour porter est de vérifier avec man gcc les flags spéciaux pour l'achitecture... (pour la compilation).

    En général c'est la seule chose qui change, les flags de compils..

    Eventuellement certains emplacements de biblios (pas système ou standrd, mais des outils extérieurs) et de .h (par exemple dns /usr/include au lieu de /usr/include/sys)

  3. #3
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 70
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Sinon, ben ça dépend, mais là tu n'as pas l'air d'avoir grand'chose de dépendant..
    Qu'est ce qui fait dire cela?

  4. #4
    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
    ces lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CC              =       gcc
    ....
    IFLAGS          =       -I$(DIR_INC)
    CFLAGS          =       $(IFLAGS)
    aucune option particulière...

    Donc , à part éventuellement ar (qui n'est pas focément commun partout) et surtout son chemin, rien de particulier à la plateforme..

Discussions similaires

  1. "Compil Error"Can't find project or library
    Par obel38 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 10/01/2011, 21h05
  2. cross-compiling, mysql, gd library, gtk
    Par Pitou5464 dans le forum C
    Réponses: 5
    Dernier message: 09/01/2009, 09h51
  3. Réponses: 1
    Dernier message: 04/01/2008, 17h30
  4. [VB6]Compil error: can't find project or library
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/05/2006, 22h28
  5. Développer / Compiler une library C++
    Par be_tnt dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 17/03/2006, 08h21

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