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

Visual Studio Discussion :

Option de compilation


Sujet :

Visual Studio

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Option de compilation
    Bonjour,

    J'essaie quelque chose qu'on me dit impossible avec Visual Studio...

    J'ai dans ma solution 3 projets (deux applications et une librairie)
    Chacune des applications fait référence à la librairie.

    Mon but est, lors de la compilation de la première application, que la librairie soit compilée avec une option.
    Et avec une autre option lors de la compilation de la seconde application.

    L'option est bien sur la librairie, pas l'application.

    Je remercie d'avance pour toute d'aide

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    peux-tu préciser le type de projet ? Si tu fais du Winform C# tu n'auras pas les mêmes options de compilations que pour du pur C/C++.
    Je mets une pièce sur du C/C++ et que ta bilbi est une statique : faire deux versions d'une shared paraitrait assez étrange.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ce sont des applications C#.

    Il s'agit, plus précisément, d'avoir la librairie compilée avec du code en moins pour une application par rapport aux autres.

    Merci

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    donc a priori tu veux faire 2 versions d'une même DLL ... après Sardonic qui veut faire une WebApp déployée sur tous les postes, voilà que tu veux un shared object variable, et donc pas shareable. J'ai vraiment du mal à comprendre les nouveaux besoins, je dois commencer à me faire vieux

    Incompréhension à part, tu peux jouer avec les event Before et After compil' pour lancer une génération altérnative d'un de tes projets. Le soucis majeur c'est qu'il faudra que tu te tapes la commande de compilation complète à la mano dans cet event. L'autre souci qui pourrait apparaitre c'est que l'event pour la compilation maison se lance en même temps que la compilation d'un autre projet, vu que VS essaie de paralléliser les compil' selon les dépendances pour de meilleures perf'.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Oui je sais c'est spécial La raison est qu'il s'agit d'une DLL commune à un serveur et à un client. Cependant, pour le client, j'aimerais qu'un partie du code ne soit pas compilée (#if SERVER ... #endif)
    Et à but de facilité de partage du projet, je voulais que ce soit Visual qui gère ceci... Mais si il faut absolument compiler à la main, je vais remettre cette idée en question

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    autre solution : tu crées un nouveau projet pour ta deuxième DLL, sauf qu'au lieu de copier/coller le code, tu y références les fichiers de ta première DLL. Ensuite tu organises bien tes dépendances de projet, avec les MACRO qui vont bien dans les propriétés de projets, et ça devrait faire l'affaire.

    Par contre tu pourrais avoir un souci sur le nom des DLL finales : tel que décrit, les DLL n'auront pas le même nom. Tu peux modifier ça dans les propriétés de projet mais du coup t'en a une qui pourrait écraser l'autre, il faut donc bien faire gaffe au répertoire de sortie. Reste ensuite à ce que chacune de tes appli link la bonne DLL.

    Je pense que comme ça tu pourrais t'approcher de l'archi recherchée

    Bon dev.
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci!

    J'ai trouvé une solution. Dans le dossier du projet, j'ai copier/coller le fichier .csproj et l'ai renommé. Ensuite je l'ai ajouté à la solution.
    Ainsi j'ai deux projets aux fichiers identiques et liés, mais ayant un "Symboles de compilation conditionnelle" différent.
    Tout bête, mais il fallait y penser...

    Ensuite, j'ai référencé la DLL sous le nouveau nom pour mon client.

  8. #8
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Effectivement, copier/coller/modifier le projet DLL correspond peu ou prou à la deuxième solution proposée

    Bonne continuation
    Plus je connais de langages, plus j'aime le C.

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

Discussions similaires

  1. [compilateur cc] Options de compilation
    Par gangsoleil dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 26/09/2005, 15h25
  2. Option de compilation gcc : sem.h
    Par Luther13 dans le forum Linux
    Réponses: 8
    Dernier message: 29/12/2004, 12h29
  3. [Compilateur]Option de compil
    Par Guybrush dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/09/2004, 11h22
  4. Réponses: 2
    Dernier message: 15/05/2004, 18h33
  5. Réponses: 2
    Dernier message: 27/02/2004, 13h47

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