CMake

2014-11-05 34 views
8

için Destek kitaplığı adları nasıl belirlenir boost kütüphaneleri için CMakeList.txt dosyasında hangi bileşenlerin Find olduğunu bulmaya çalışıyorum.CMake

Bu dizine /usr/local/include/boost baktım. Ve ben rasgele bazı klasörleri seçin ve FIND_PACKAGE kullanmayı deneyin. Bunların hepsi iyi çalışıyor.

FIND_PACKAGE(Boost COMPONENTS thread system log log_setup 
        signals graph memory_order program_options REQUIRED) 

Kullandığım özellikle property_tree. Bu çalışma ve aşağıdaki hata iletisini oluşturur değildir:

/Applications/CMake.app/Contents/share/cmake-3.1/Modules/FindBoost.cmake:1182 (mesaj) at

CKağıt Hata:

İstenen Boost kütüphaneleri bulunamadı.

Boost sürümü: 1.55.0

Boost yolunu içerir:/usr/local/

aşağıdaki statik Boost kitaplıkları bulunamadı içerir:

boost_property_tree 

Herkes nasıl açıklayabilir misiniz veya destek için uygun kütüphane isimlerini nerede bulabilirim?

cevap

12

Yalnızca FIND_PACKAGE'un COMPONENTS bölümünün bir kısmı, derlenmiş kütüphaneleri arar. Boost'un büyük bir kısmını oluşturan sadece başlık kütüphanelerini kontrol edememektedir. Bağlama gerektiren birkaç kütüphane vardır (çoğunlukla platforma özgü şeyler yapanlar). senin örneklerden

, sadece thread, signals (başlık-sadece signals2 aksine), system ve program_options önceden ve daha sonra programı ile bağlantılı inşa edilmesi gerekir. Geri kalanlar için ilgili başlık dosyalarını dahil etmek yeterlidir. Böylece, hedefinizin içerdiği dizinlere ${Boost_INCLUDE_DIRS} eklemek yeterlidir.

Bu kütüphane kütüphaneleri listesi için buraya bakın Which boost libraries are header-only?