Question

Je voudrais avoir des dépendances du projet en fonction de la configuration du projet, je suis en train de construire.

Par exemple, je ne veux pas construire et créer un lien SomeTestLib.vcproj dans la configuration de sortie, mais j'aimerais construire et lien vers elle dans Debug.

Une solution, qui fonctionne sorta, est d'utiliser des macros de compilation conditionnelle:

#ifdef DEBUG  
#pragma comment( lib, "SomeTestLib" )  
#endif

Mais dans ce cas, le débogueur et IntelliSense ne fonctionnent pas pour SomeTestLib.
Y at-il un ou .sln .vcproj pirater que je pourrais utiliser?
Merci.

Était-ce utile?

La solution

Après une recherche Google pour les jours, j'ai finalement renoncé à trouver une solution à ce problème et fait sauter un développeur VS, qui m'a donné la solution à ce problème (en fait, j'ai essayé une bajillion différentes choses sur moi-même pour trouver ce) .

Apparemment, l'IDE est pas assez intelligent pour comprendre que vous avez bâtiment désactivé pour une bibliothèque particulière dans une configuration donnée et de ne pas ajouter la production de ce projet à la ligne de commande de liaison pour les projets qui en dépendent. Je suis sûr que vous êtes au courant de cela.

Cependant, comme il est juste coller la ligne de sortie du projet de bibliothèque dans la ligne de commande du projet à charge, le réglage de la ligne de sortie « » se traduira par rien d'être ajouté à la ligne de commande d'éditeur de liens sur des projets dépendants!

Il faut espérer que ce problème sera résolu dans Visual Studio à l'avenir. Je reste optimiste, car il est mon IDE favori, et je suis toujours impressionné par les fonctionnalités qu'il supporte. Cependant, certains des fils d'aide VS que je l'ai vu dire que ce bug est « par la conception », alors peut-être qu'ils ne seront pas réparer. Il semble assez facile à faire, cependant.

Quoi qu'il en soit, pour résumer:

  • Cliquez avec le bouton droit sur votre projet de bibliothèque dans la solution Explorer et cliquez sur « Propriétés ».
  • Passez à la paire « Configuration / Plate-forme » que votre projet de bibliothèque ne construit pas.
  • Sélectionnez "Propriétés de configuration -> Bibliothèque -> Général".
  • Pour "fichier de sortie", tapez "" (qui est parens ouvert, l'espace, parens fermer).
  • Cliquez sur OK.

S'il vous plaît noter que cette solution de contournement vous donnera des erreurs si vous construisez ou nettoyer le projet de bibliothèque handicapés. Si vous venez de construire votre solution, elle sera ignorée sur les configurations handicapées, de sorte que vous n'obtiendrez des erreurs.

Hope this helps!

Daniel

Autres conseils

Il est possible de désactiver les dépendances de la bibliothèque Linker / General / Propriété du lien dans le projet dépendant et mettre la bibliothèque en entrées de liens dans les configurations possibles.

Il fait le projet référence moins utile, mais il est réalisable.

Définissez le type de configuration à l'utilitaire au lieu d'application / bibliothèque dans les propriétés du projet -> Général ..

Dans Visual Studio, chaque configuration de construction conserve sa propre liste de propriétés pour votre projet. Il suffit d'ajouter votre lib à quelle que soit la configuration que vous voulez construire. Il suffit de ne pas ajouter à « toutes les configurations »

clic droit de votre solution et sélectionnez Propriétés. page de propriétés Solution sera affiché ..

Dans la page droite sélectionnez Propriétés Configuration >>> Configuration

Vous pouvez sélectionner la configuration de construction pour le débogage, Lâcher et tous les types de construction en cochant la case à cocher telles que la construction.

Dans le projet principal, allez dans Propriétés de configuration -> Linker -> Entrée, dans la section intitulée « Ignorer la bibliothèque spécifique » ajouter la lib que vous voulez eignored, .: .lib par exemple. Pour ce faire, encore une fois pour l'autre configuration, à l'exception d'ignorer un autre lib / dll.

Enfin, si vous ne voulez pas chaque bâtiment de projet pour les deux configurations, cliquez à droite de la solution -> Dépendances du projet -> [Sélectionner un projet principal / haut niveau] -> Décochez le projet que vous ne voulez pas construit / ignored .

Cette méthode a l'avantage que vous pouvez toujours créer manuellement chaque projet si on le souhaite, mais il peut changer les configurations et seulement construire / utiliser le répertoire lib / dll que vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top