2015-04-29 17 views
11

Visual Studio 2013 Premium yüklemeyle çalışmak için destek almak için günlerce çalışıyorum. Bunu bir ZIP yüklemesiyle ve şimdi de NuGet ile denedim. Her iki yöntem de beni bir bağlantı hatası ile aynı noktaya getirdi.VS2013 Yükseltme NuGet kullanarak

hata: 1> LİNK: önemli hata LNK1104: Dosya açılamıyor 'libboost_system-vc120-mt-gd-1_57.lib'

ben boost için posta listesi aracılığıyla baktı ve birisi benzer bir gönderme bulundu Sorun, ancak bu 2012 yılından itibaren boost_1_54_0 ya da bir şeyle, yani hiç bir şekilde VS2013 ile ilgili değil ya da 1_58_0 hızını yükseltiyordu.

Ayrıca SO dahil olmak üzere birkaç forum gönderisine de baktım, ancak bunların hiçbirinde aynı sorunu yaşıyorum. Ya o ya da sadece cevapları yok.

Hataların gösterdiği işaretlerden hiçbirini ayırt edemiyorum çünkü bu, STL kitaplıkları veya kendi başlıklarımdan başka bir şey kullanmadı.

Her türlü yardım için teşekkür ederiz, yardımcı olabilecek başka ek bilgiler varsa lütfen bildirin.

cevap

15

sana "boost" basitçe adında Nuget paketi yüklü şüpheli. Bu, tüm Boost başlıklarını içerir, ancak derlenmiş kütüphaneler içermez. Yalnızca üstbilgi Boost kitaplıklarını (yani çoğunu) kullanmakla ilgileniyorsanız sorun değil.

Gerçekten istediğiniz şey "boost-vc120" adlı paket (vc120, VS2013 ile birlikte gelen VC++ sürümü olan VC++ 12.0 ürününe başvuruyor). Bu tüm kütüphanelere de sahiptir. Yüklemenin daha uzun süreceğini fark edeceksiniz.

Her iki durumda da, NuGet gerekli tüm VC++ Dizin ayarlarını ayarlamaya özen gösterir. Başka yapılandırma gerekli değildir.

+0

Sadece boost-vc120 paketini kurdum ve işe yaramış görünüyor. Başlangıçta bunu önledim çünkü açıklamayı yanlış anladım ve "Windows XP" yi gördüm. Mevcut çözümümde hem destek hem de boost-vc120 paketleri var. Düzenli artışı kaldırırsam bu bir şeyi etkileyecek mi? – user3857017

+0

@ user3857017 - kaldırma işleminin hiçbir etkisi olmamalıdır, ancak eğer varsa, boost-vc120'yi de her zaman kaldırabilir ve sonra yeniden yükleyebilirsiniz. – Ferruccio

+0

Tamam. Sadece soruyorum çünkü destek, hiçbir sebepten ötürü orada oturmak için oldukça büyük bir paket. – user3857017

0

Sabit diskinizde libboost_system-vc120-mt-gd-1_57.lib dosya var mı?

Evet ise, .lib'yi linker/input/Ek Bağımlılıklar'a eklediniz mi?

enter image description here

+0

Oraya bakmayı asla düşünmedim, sadece sınıfa bıraktım ama geri döndüğümde kontrol edeceğim. Şu anda sadece NuGet setlerini kullanıyor ve takviye ile yüklüyorum. – user3857017

+1

Kütüphane dosya adının bu listeye eklenmesi gerekmez. MSVC'de, destek başlıkları kütüphane adlarını otomatik olarak belirtmek için '#pragma comment (lib," ... ")' direktiflerini kullanır. En önemlisi, tüm destekleyici '.lib' dosyalarını içeren * dizini * 'Bağlayıcı -> Genel -> Ek Kitaplık Dizinleri' olarak eklemektir. – bogdan

+0

Dosyayı bulmayı başaramadım, ancak diğer yanıtta diğer destek paketi ile çalıştım. Yine de teşekkürler! – user3857017

2

Boost NuGet paketlerinin yapısı here şeklindedir. boost-vc120'u kullanabilirsiniz, ancak TÜM yükseltme kütüphanelerini projenize indirebilirsiniz. Bu nedenle, disk alanını kaydetmek istiyorsanız, size başlık dosyaları ve belirli ikili paketler sağlayan boost paketini kullanın. Sizin durumunuzda, boost_system-vc120.

Yükseltme paketini kaldıramazsınız, çünkü boost-vc120/boost_system-vc120 gibi ikili paketler buna bağlıdır.

+1

'boost-vc120' tüm destek kütüphanelerini indirecektir, ancak yalnızca projenizde kullandığınız kütüphaneleri bağlayacaktır. Boost, hangi kütüphanelerin bağlanması gerektiğini belirtmek için VC++ '#pragma comment (lib)' yönergesinden yararlanır. – Ferruccio

+0

Elbette cevabı çözdüm. Teşekkürler. –