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

Boost C++ Discussion :

projet boost multiplateforme - svn


Sujet :

Boost C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Points : 116
    Points
    116
    Par défaut projet boost multiplateforme - svn
    Bonjour a tous,

    Je désire utiliser boost pour un projet multiplateforme windows7 Linux RedHat.
    N'ayant jamais utilisé de lib externe comme celle ci à compiler, j'ai quelques interrogations sur l'utilisation:

    1- Est il possible de commiter boost au meme endroit que mon projet pour ne pas que les autres devs soient obliger de le reinstaller ?
    2- En utilisation Win/Linux est ce que le repertoire include est bien le meme ?

    Mon projet a cette architecture la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ./src
    ./include
    ./lib
    J'ai réalisé l'install de boost coté linux en spécifiant comme lib destination la lib de mon projet et comme include dir de boost l'include du projet (et donc je n'ai rien sous /usr/local)
    Est ce une bonne idée ou pas du tout ?

    J'ai du coup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ./src
    ./include/boost
    ./lib/libboost_system.so
    La je suis en train de faire l'install de boost sous Windows.
    J'aimerais avoir le meme include

    Qu'en pensez vous ?
    Merci d'avance

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    Citation Envoyé par sone47 Voir le message
    1- Est il possible de commiter boost au meme endroit que mon projet pour ne pas que les autres devs soient obliger de le reinstaller ?
    Oui.
    Il y faut tout de même faire attention à une chose: certaines parties de boost doivent être utilisées sous forme de bibliothèque (filesystem et datetime entre autres), et seront donc dépendante de la plateforme.

    Citation Envoyé par sone47 Voir le message
    En utilisation Win/Linux est ce que le repertoire include est bien le meme ?
    La question est mal posée, mais disons que oui, tu peux faire en sorte d'avoir la même structure de dossiers pour les deux plateformes. Cela ce gère dans ton makefile et/ou ton IDE (options du projet).

    Citation Envoyé par sone47 Voir le message
    Mon projet a cette architecture la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ./src
    ./include
    ./lib
    C'est un choix. Pour ma part, je préfère une structure du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ./sources
    ..../include (fichiers .h)
    ..../src (fichiers .cpp)
    ..../temp (fichiers intérmédiare, comme les .o etc.)
    ./bin (fichiers compilés)
    ./ext (tout ce qui n'a pas été codé par toi)
    ..../lib
    Mais c'est un choix, que l'on fait au fur et à mesure de nos développements. C'est comme pour la gestion des différentes configurations (debug/release/x86,x64, etc...). Certains créent un répertoire par config, d'autres (dont moi) préfèrent modifier le nom des fichiers générés (monprog, monprg_d, monprog_64_d) quitte à le remodifier pour une release officielle.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Points : 116
    Points
    116
    Par défaut
    Merci pour ta reponse

    Citation Envoyé par r0d Voir le message
    certaines parties de boost doivent être utilisées sous forme de bibliothèque (filesystem et datetime entre autres), et seront donc dépendante de la plateforme.
    Tu parles des parties de boost qu'il est nécessaire de compiler ?
    J'utilise seulement thread.

    Pour cette structure, les includes des libs externes tu les places sous ext ou sous sources/include ?
    J'ai donc installé boost sur mes 2 plateformes.
    Le repertoire include est similaire donc je pourrais faire pointer mes projets sur le meme repertoire.
    Puis sous linux j'ai ma lib libboost_thread.so et libboost_system.so que je pourrais mettre dans le meme repertoire que mes dll boost windows ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ./sources
    ..../include (fichiers .h)
    ......../boost
    ..../src (fichiers .cpp)
    ..../temp (fichiers intérmédiare, comme les .o etc.)
    ./bin (fichiers compilés)
    ./ext (tout ce qui n'a pas été codé par toi)
    ..../lib
    ..../include/boost
    ..../libboost_thread.so
    ..../libboost_thread.dll
    ..../libboost_system.so
    ..../libboost_system.dll
    Merci

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par sone47 Voir le message
    Tu parles des parties de boost qu'il est nécessaire de compiler ?
    C'est ça. Je ne me souviens plus si thread en fait partie, mais cela ne m'étonnerait pas, vu que c'est dépendant du systeme. Mais quoi qu'il en soit, ces fichiers compilés (.lib pour windows, .a pour linux) sont fournis avec boost (du moins lorsqu'on passe par boostpro), il suffit donc juste de bien les gérer dans son projet.

    Citation Envoyé par sone47 Voir le message
    Pour cette structure, les includes des libs externes tu les places sous ext ou sous sources/include ?
    Là c'est vraiment comme tu veux, c'est pour cela que je n'avais pas plus détaillé.
    La seule chose que je trouve importante (point de vue tout à fait personnel qui n'engage que moi), c'est de séparer notre code avec le code externe le plus tôt possible, car l'expérience m'a montré que c'est plus facile à maintenir et gérer les évolution de l'un et de l'autre ainsi.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Points : 116
    Points
    116
    Par défaut
    Citation Envoyé par sone47 Voir le message
    Merci pour ta reponse



    Tu parles des parties de boost qu'il est nécessaire de compiler ?
    J'utilise seulement thread.

    Pour cette structure, les includes des libs externes tu les places sous ext ou sous sources/include (cf ci dessous)?
    J'ai donc installé boost sur mes 2 plateformes.
    Le repertoire include est similaire donc je pourrais faire pointer mes projets sur le meme repertoire.
    Puis sous linux j'ai ma lib libboost_thread.so et libboost_system.so que je pourrais mettre dans le meme repertoire que mes dll boost windows ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ./sources
    ..../include (fichiers .h)
    ......../boost
    ..../src (fichiers .cpp)
    ..../temp (fichiers intérmédiare, comme les .o etc.)
    ./bin (fichiers compilés)
    ./ext (tout ce qui n'a pas été codé par toi)
    ..../lib
    ..../include/boost
    ..../libboost_thread.so
    ..../libboost_thread.dll
    ..../libboost_system.so
    ..../libboost_system.dll
    Merci

  6. #6
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par sone47 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ./sources
    ..../include (fichiers .h)
    ......../boost
    ..../src (fichiers .cpp)
    ..../temp (fichiers intérmédiare, comme les .o etc.)
    ./bin (fichiers compilés)
    ./ext (tout ce qui n'a pas été codé par toi)
    ..../lib
    ..../include/boost
    ..../libboost_thread.so
    ..../libboost_thread.dll
    ..../libboost_system.so
    ..../libboost_system.dll
    Deux remarques:
    1/ je te conseille d'utiliser les bibliothèque statiques plutôt que les bibliothèques dynamique (note: library se traduit en français par bibliothèque). Les bibliothèques dynamiques (.dll/.so) c'est comme les pointeurs: à n'utiliser que si on a vraiment une bonne raison de le faire.

    2/Met les binaires externes (ici les bibliothèques compilées de boost) dans un répertoire dédié. Soit dans ext/boost/lib, soit dans ext/lib. La raison de ceci est, une fois encore, que ce sera plus facile à manipuler par la suite. Il est très fréquent, quand on programme en c++, de devoir rajouter des dépendances externes en cours de développement; il faut donc que tout soit prêt pour cela.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 366
    Points : 116
    Points
    116
    Par défaut
    Merci pour ta reponse.
    J'ai fais comme tu as dis, un repertoire externe avec un repertoire boost contenant la lib et les includes.
    J'utilise du coup les statiques.

    Mercipour ton aide!

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 08/11/2012, 10h17
  2. Problème récupération projet Maven par SVN
    Par Danicela dans le forum Maven
    Réponses: 10
    Dernier message: 27/01/2012, 07h38
  3. [Boost]Release SVN de Boost
    Par Oragon Efreet dans le forum Boost
    Réponses: 3
    Dernier message: 09/02/2011, 09h57
  4. [Utilisation] Un projet sur plusieurs svn, est-ce possible ?
    Par kolbek dans le forum Subversion
    Réponses: 1
    Dernier message: 08/12/2009, 20h43
  5. Réponses: 5
    Dernier message: 06/09/2007, 16h52

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