2014-11-05 14 views
8

Próbuję dowiedzieć się, jakie składniki mają Find w CMakeList.txt dla bibliotek boost.Jak określić nazwy bibliotek boost dla CMake

Spojrzałem na ten katalog /usr/local/include/boost. I losowo wybieram niektóre foldery i próbuję użyć FIND_PACKAGE. Te następujące wszystko działa dobrze.

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

Szczególny, którego używam to property_tree. To nie działa i wytwarza się następujący komunikat o błędzie:

CUpewnij Błąd w /Applications/CMake.app/Contents/share/cmake-3.1/Modules/FindBoost.cmake:1182 (wiadomości):

Nie można znaleźć żądanych bibliotek boost. Wersja

doładowania: 1.55.0

doładowania zawierać ścieżkę:/usr/local/include

nie udało się znaleźć następujące statycznych bibliotek Boost:

boost_property_tree 

Czy ktoś może wyjaśnić, w jaki lub gdzie mogę znaleźć odpowiednie nazwy bibliotek do wzmocnienia?

Odpowiedz

12

Część z zakresu tylko szuka skompilowanych bibliotek. Nie jest w stanie sprawdzić bibliotek tylko nagłówkowych, które stanowią znaczną część Boost. Istnieje tylko kilka bibliotek, które wymagają łączenia (głównie te, które wykonują operacje specyficzne dla platformy).

Od swoich przykładach, tylko thread, signals (w przeciwieństwie do signals2 który jest tylko nagłówek), system i program_options trzeba budować wcześniej, a następnie połączony z programem. Co do reszty, wystarczy dołączyć odpowiednie pliki nagłówkowe.

W związku z tym wystarczy dodać ${Boost_INCLUDE_DIRS} do katalogów uwzględnienia celu.

Zobacz listę bibliotek tych bibliotek Which boost libraries are header-only?

Powiązane problemy