2010-06-02 17 views
5

i bile belirtmedi artırmak libararies bağlamak istemektedir. GCC ile her şey iyi çalışıyor. Uygulamam boost_system ve boost_thread kitaplıklarını kullanıyor. Ben libs C ikamet kütüphaneler sadece libboost_system.lib adlandırılmış (ve libboost_system_compiler_threading_version_wtf_snafu.lib değil) anlamına gelir "sistem" düzeni, yılında VC2010 ile boost inşa: \ Boost \ lib, MakefileBen MSVC 2010 yerine GCC ile benim uygulama oluşturmak çalışıyorum

LFLAGS  = /NOLOGO /INCREMENTAL:NO /SUBSYSTEM:CONSOLE 
LIBS   = /LIBPATH:C:/Boost/lib libboost_system.lib libboost_thread.lib Ws2_32.lib 
belirtir Ben ciddiye demek

LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc100-mt-1_43.lib 

ile çıkılır bağlamaya çalışırken

derler NMake yürütmesini, ama ne zaman, WTF? Libboost_systen.lib ve libboost_thread.lib bağlantılarını nasıl yapacağımı anlattım ve libboost_data_time ile bağlantı kurmayı denedim ve neden "etiketli" düzende lib'leri oluşturduğumu varsayıyor? MSVC'nin akıllı olmaya çalışmasını nasıl durdurabilirim ve numaralı telefonun nolu bağlantıyı kurmak istediğini tahmin edebilir miyim?

sayesinde Philipp

cevap

5

Bu otomatik bağlantı için uyumlu derleyiciler ile Boost kütüphanelerini bir özelliktir.

(O dolambaçlı kütüphane isimleri parçacığı ve platform üzerinde bulunan seçenekleri bağlama sayısız kapsayacak, yani Windows üzerinde kuralı ... kullanmak için iyi nedenler vardır) burada

fazla bilgi:

http://www.boost.org/doc/libs/1_33_1/more/getting_started.html#auto-link

Daha yeni bir sürüm için bir sayfa bulamıyorum, ancak BOOST_ALL_NO_LIB ve ilgili seçeneklerin hala 1.43'te geçerli olduğuna inanıyorum. varsayarak

+0

Hey, bu tanım hile yaptı. Teşekkürler. – Philipp

1

otomatik bağlantı (yani, tanımladığınız BOOST_ALL_DYN_LINK veya kütüphane özel eşdeğer) vardır.

BOOST_AUTO_LINK_NOMANGLE 

doğru kütüphane isimlere bağlamak:

düzeni 'sistem' için, önişlemci makro tanımlamak gerekir.

BOOST_AUTO_LINK_TAGGED 

doğru kütüphane isimlere bağlamak: düzeni için

Eğer önişlemci makro tanımlamak zorunda 'etiketli'.

Bazı kütüphaneler için bu geçersiz kılma işlemini yapıp yapamayacağınızı ve başkaları için varsayılan değeri koruyabileceğinizi bilmiyorum. Bu hayal edeceğim çok hantal bir kurulum olurdu.

İlgili konular