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

Qt Discussion :

Utiliser des objets intermédiaires externes pour la compilation de projet


Sujet :

Qt

  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser des objets intermédiaires externes pour la compilation de projet
    Bonjour,

    Je face une petite énigme technique concernant des projets interconnectés.

    J'ai développé un projet, appelons-le PROJET, constitué d'un certain nombre de sources rangées en sous-dossiers. Ce projet-là ne me pose pas de problème, je le compile normalement et il me sort tous les fichiers qui vont bien (moc_, .o, .exe) dans un dossier de build, appelons-le PROJ_BUILD.

    Mais j'aimerais pouvoir tester un nouveau "module" que je viens d'ajouter au projet, à savoir les sources réunies dans sous-dossier en particulier (elles fournissent une partie qui peut-être indépendante), appelons-le MODULE.

    Pour ce faire, j'ai développé une petit projet de test, appelons-le TEST qui va introspecter les méta-objets que je lui donne pour en exposer les méthodes et construire une IHM de test.
    Ce que je voudrais, c'est pouvoir ajouter au projet TEST des dépendances vers MODULE sans les inclure dans le projet TEST afin de les utiliser toujours dans l'état qu'elle ont dans PROJET. Donc je ne veux pas simplement faire un copier/coller de MODULE pour l'ajouter au projet TEST car alors j'aurais toujours deux versions de MODULE dans deux endroits différents.

    En somme, voilà ce que je veux faire :
    - Je compile PROJET normalement, qui va me sortir tous les fichiers qui vont bien dans PROJ_BUILD.
    - Je compile TEST, qui va chercher les headers dans PROJET/MODULE et les moc_ et .o correspondants directement dans le dossier PROJ_BUILD

    Pour les headers, c'est facile, il me suffit de rajouter le chemin vers PROJET/MODULE dans INCLUDEPATH, ça fonctionne.

    - Je croyais qu'en ajoutant le chemin vers PROJ_BUILD dans DEPENDPATH, le linker serait alors capable d'aller chercher les .o et moc_ déjà compilés associés aux headers du module afin de compiler le projet de TEST. Mais manifestement cela ne fonctionne pas.

    Voilà à quoi ressemble l'extrait de code dans TEST.pro :
    (OS ET BUILD sont définis en amont).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TESTED_PROJECT = "PROJET"
    TESTED_PACK = "MODULE"
    INCLUDEPATH += "C:/VBoxShared/Developpements/Sources/"$${TESTED_PROJECT}/$${TESTED_PACK}
     
    TESTED_BUILD = "C:/VBoxShared/Developpements/Shadows/"$${TESTED_PROJECT}/$${OS}/$${QT_VERSION}/$${BUILD}
    DEPENDPATH += $${TESTED_BUILD}/.obj  $${TESTED_BUILD}/.moc $${TESTED_BUILD}/.rcc $${TESTED_BUILD}/.ui
    Existe-t-il un moyen de réaliser cela sans trop de difficultés ?


    EDIT : J'ai également testé une autre solution, à savoir fusionner les répertoires de sortie de compilation des fichiers intermédiares de TEST avec ceux de PROJET, me disant naïvement que le compilateur de TEST saurait alors retrouver les fichiers .o s'ils sont dans son répertoire de sortie désigné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    TESTED_PROJECT = "PROJET"
    TESTED_PACK = "MODULE"
    INCLUDEPATH += "C:/VBoxShared/Developpements/Sources/"$${TESTED_PROJECT}/$${TESTED_PACK}
     
    TESTED_BUILD = "C:/VBoxShared/Developpements/Shadows/"$${TESTED_PROJECT}/$${OS}/$${QT_VERSION}/$${BUILD}
     
    OBJECTS_DIR = $${TESTED_BUILD}/.obj
    MOC_DIR =  $${TESTED_BUILD}/.moc
    RCC_DIR = $${TESTED_BUILD}/.rcc
    UI_DIR = $${TESTED_BUILD}/.ui
    Malheureusement, en plus d'être inélégant, cela ne fonction pas davantage. J'ai toujours les mêmes erreur "undefined reference" à la compilation.
    Dernière modification par Invité ; 19/09/2018 à 16h50.

Discussions similaires

  1. Utiliser des objets automation dans Oracle
    Par WebPac dans le forum Forms
    Réponses: 10
    Dernier message: 29/11/2006, 19h17
  2. Utiliser des objets SWING dans une vue RCP
    Par manuga72 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 20/10/2006, 17h26
  3. Erreur lors de l' utilisation des objets ADO
    Par aityahia dans le forum Bases de données
    Réponses: 10
    Dernier message: 24/03/2006, 13h46
  4. [PDO] Utiliser l'Objet de PHP pour gérer sa base de données
    Par Viau dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/01/2006, 18h16
  5. Ajouter des librairies externes pour la compilation en C++
    Par Roming22 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/07/2005, 10h15

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