2008-12-02 6 views
12

J'ai une solution de projets mixtes VB.NET et C++. Lorsque vous utilisez Visual Studio 2005, vous pouvez définir les "Outils-> Option-> Projets et solutions-> Répertoires VC++" pour aider le compilateur à trouver vos fichiers d'inclusion. Lors de la construction de la même solution avec MSBuild, je ne vois pas comment passer ces paramètres. Le C++ ne compilera pas sans ce chemin spécifié. Lors de la construction de cette solution, Visual Studio construit parfaitement.comment configurer les répertoires MSBuild VC++

Quel est le moyen de transmettre ce chemin pour MSBUild? Editer: On dirait que MSBuild ne passe pas le chemin (ou le commutateur/u) à vcbuild. À partir de VCBuild échoue à la place de dépendance.

+0

Avec Visual 2010, les choses fonctionnent plus que prévu puisque les répertoires des propriétés de l'utilisateur sont utilisés. Il n'y a plus besoin d'utiliser les variables d'environnement – CharlesB

+1

Pour la dernière version VS2013, voir ma réponse dans la discussion: http://stackoverflow.com/questions/15654002/adding-additional-library-and-include-paths-when-compiling- from-command-line/28103688 # 28103688 – zhifac

Répondre

13

Pour définir les répertoires d'inclusion, vous pouvez les ajouter à votre variable d'environnement INCLUDE. Vous utilisez le même format que dans PATH env. variable - vous séparez les chemins avec des points-virgules.

Pour définir les répertoires de la bibliothèque, vous pouvez le faire de la même manière en les insérant dans votre variable d'environnement LIB.

Pour définir les variables d'environnement, il vous suffit de cliquer avec le bouton droit sur "Poste de travail", choisissez "Propriétés". Ensuite, vous allez dans l'onglet "Avancé", et il y a un bouton appelé "Variables d'environnement".

Ou, vous pouvez exécuter MSBuild à partir d'un script batch, auquel cas, avant d'appeler MSBuild, vous pouvez définir des variables d'inclusion et LIB, comme ceci:

set INCLUDE=C:\Libraries\LibA\Include 
set LIB=C:\Libraries\LibA\Lib\x86 
+1

Si cela ne fonctionne pas correctement, essayez le correctif proposé par @CharlesB ci-dessous. – Tibo

+2

Vous devez ajouter '/ p:" VCBuildAdditionalOptions =/useenv "' aux arguments MSBuild pour qu'il prenne les variables INCLUDE et LIB – CharlesB

4

... et vous pouvez aimer à ajouter% COMPREND% et% LIB% à vos variables pour éviter d'écraser d'entre eux

set INCLUDE=C:\Libraries\LibA\Include;%INCLUDE% 
set LIB=C:\Libraries\LibA\Lib\x86;%LIB% 
Questions connexes