2010-10-23 17 views
5

Yükseltme veya diğer kitaplıklar gibi C++ programımla yüklenecek bazı harici bağımlılıklarım var. Bu kütüphaneler .DLL $ PATH değilse, programımı çalıştırdıktan sonra "DLL yüklenemiyor" hata iletisini aldım. Programımı çalıştırırken .DLL'nin yüklenmesini sağlamak için, bu yolu kütüphane dizinine eklemem gerekiyor. Örneğin:VIsual C++ Express 2010 projesinde çalışma zamanı DLL yolunu nasıl ekleyebilirim?

PATH=$PATH;c:\boost\lib 

O inşaat, ama küresel çevre kirli kılan bu aptal çözüm, sevmiyorum. Ayrıca, eklemek için daha fazla bağımlılık var. Bu şekilde yapılabilecek en kötü şey, bağımlılıkların farklı bir versiyonuna sahip olduğunuzda, çok can sıkıcıdır. Örneğin. Burada bir boost1.3.7 bağlı olan bir projemiz var, bunu geliştirmek için, size harika, ah, boost1.4.4 bağlıdır başka proje B geliştirmeye gerek burada, PATH

PATH=$PATH;c:\boost1.3.7\lib 

değiştirmek zorunda Ve. ... bağlamak için birden fazla kütüphane varsa Gördüğünüz gibi değişken

PATH=$PATH;c:\boost1.4.4\lib 

bu .... akıllı çözüm değildir değiştirmek, bu gerçek bir kabus olurdu. İstediğim şey, VC++ projesinin özelliğini değiştirmek, bu yolu PATH değişkenine yalnızca programımı çalıştırırken/hata ayıklamasında eklemek.

için yol eklemeyi denedim, ancak çalışmak için değil, bina için PATH gibi görünüyor. Programımı doğru şekilde çalıştırmak için VC++ projeme nasıl yollar ekleyebilirim?

cevap

1

neden PATH'a 'aptal' bir çözüm olarak eklemeyi düşündüğünüzden emin değil misiniz? 3. parti libsler için çok yaygın bir çözümdür. Uygulamanızı yeniden dağıtmak ya da VS altında çalıştırmak yerine komut satırından çalıştırmak isterseniz ne olur? Eğer küresel yolunu değiştirerek değil ısrar ederseniz

, ayrıca deneyebilirsiniz:

  • = (çalıştırılabilir programın dizinine gerekli DLL dosyaları eklemek çok dağınık ve hataya açık çoklu versiyonları ve/veya birden durumunda
  • sonra
  • istediğiniz PATH ayarlayan bir toplu iş dosyası yapmak) (yukarıdaki gibi aynı sözler% WINDIR%/system32 reuired DLL dosyaları eklemek VS. çağırmak) yolları inşa Şimdi VS, sadece belirlediğiniz PATH'ı kullanır, global PATH değişmeden kalır.
  • , WinSxS klasörlerine yüklü dll yüklemeyi deneyebilir, ancak bu o kadar kolay değildir. Btw

(for example), sürüm sorunu aşmanın sembolik kullanımı:

mklink /J c:/boost c:/boost1.3.7 

sonra sadece c ekleyin: PATH için/boost. Sürüm değişirse, çevre yerine sembolik bağlantıyı değiştirin

İlgili konular