cMake

2010-01-16 23 views
5
içinde boost.asio kullanımı

cMake için nispeten yeni ve projemde destek asio kitaplığını kullanmaya çalışıyorum. cMake

Böyle smart_ptr ve lexical_cast gibi diğer boost kütüphaneleri bulmak için CMake elde edebilir, ama boost/asio.hpp eklemeyi denediğimde bağlayıcı hatası alıyorum:

LINK : fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-1_40.lib'. 

o zaman benim CMakeLists.txt değiştirmeye çalıştı sonra

find_package(Boost 1.40.0 REQUIRED COMPONENTS asio) 

CKağıt için

find_package(Boost 1.40.0 REQUIRED) 

dan Boost_ASIO_LIBRARY_DEBUG ve Boost_ASIO_LIBRARY_RELEASE için ks. Bunu doğru yoldan gidiyorum ve eğer öyleyse cMake'i bu kütüphaneleri bulmak için nereye yönlendirmeliyim? ASIO documentation göre

cevap

8

(Ben cmake 2.6 ve boost 1.40.0 kullanıyorum):

aşağıdaki kütüphaneler mevcut olmalıdır Boost.Asio kullandığınız programları bağlamak amacıyla:

  • Boost.Sistem desteği :: system :: error_code ve boost :: system :: system_error classes.
  • Yükseltme :: regex parametresi alan read_until() veya async_read_until() aşırı yüklemelerinden herhangi birini kullanıyorsanız, Boost.Regex (isteğe bağlı).
  • Boost.Asio'nun SSL desteğini kullanıyorsanız OpenSSL (isteğe bağlı).

size bağlantı hatası bakarsanız, bunun Boost.System kütüphanede aradığını göreceksiniz. Ben okumak için CMakLists.txt değiştirmeyi deneyin olacaktır:

find_package(Boost 1.40.0 REQUIRED system) 
+1

Ve tabii ayrıca target_link_libraries eklemek zorunda (YourExecutable $ {Boost_LIBRARIES}) –