2008-12-02 19 views
12

Karışık VB.NET ve C++ projeleri için bir çözüm var. Visual Studio 2005'i kullanırken, derleyicinin içerme dosyalarınızı bulmasına yardımcı olmak için "Araçlar-> Option-> Projeler ve Çözümler-> VC++ Dizinleri" ni ayarlayabilirsiniz. MSBuild ile aynı çözümü oluştururken, bu ayarları nasıl geçeceğimi göremiyorum. C++ belirtilen bu yol olmadan derlenmez. Bu çözümü oluştururken Visual Studio'yu mükemmel bir şekilde oluşturuyor.MSBuild VC++ Dizinleri nasıl belirlenir

MSBUild için bu yolu iletmenin yolu nedir?

Düzenleme: MSBuild yolunu (veya/u anahtarını) vcbuild'e iletmez. VCBuild'den başlayarak bağımlılıktan başarısız olur.

+0

Visual 2010 ile birlikte, kullanıcı özellik dizinleri kullanıldığından, beklendiği gibi çalışılıyor. – CharlesB

+1

ortam değişkenlerini kullanmanıza gerek yok VS2013'ün en son sürümü için, cevabın konusuna bakın: http://stackoverflow.com/questions/15654002/adding-additional-library-and-include-paths-when-compiling- from-command-line/28103688 # 28103688 – zhifac

cevap

13

Dizinleri dahil etmek için bunları INCLUDE ortam değişkeninize ekleyebilirsiniz. PATH env'de olduğu gibi aynı formatı kullanırsınız. değişken - noktalı virgülle ayırın.

Kitaplık dizinlerini ayarlamak için, bunları LIB ortam değişkeninize ekleyerek benzer şekilde yapabilirsiniz.

Ortam değişkenlerini ayarlamak için, "Bilgisayarım" ı sağ tıklatıp "Özellikler" i seçin. Sonra "Gelişmiş" sekmesine gidersiniz ve "Ortam Değişkenleri" adlı bir düğme var.

Veya, bir PARTİ komut dosyasından MSBuild çalıştırabilirsiniz bu durumda, MSBuild çağırmadan önce, sen LIB değişkenler, şöyle DAHİL ve ayarlayabilirsiniz:

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

Bu işe yaramazsa, aşağıdaki @CharlesB tarafından önerilen düzeltmeyi deneyin. – Tibo

+2

"/ p:" VCBuildAdditionalOptions =/useenv "' ile MSBuild argümanlarına INCLUDE ve LIB değişkenlerini girmelisiniz. – CharlesB

4

... ve ayrıca sizin gibi olabilir % eklenecek Sen MSBuild yeni sürümlerinde ortam değişkenleri iletmek için /p[roperty]:useenv=true anahtarını kullanabilirsiniz

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