So ermitteln Sie die Boost-Bibliotheksnamen für CMake

8

Ich versuche herauszufinden, welche Komponenten für Find in CMakeList.txt für boost -Bibliotheken sind.

Ich habe dieses Verzeichnis /usr/local/include/boost angesehen. Und ich wähle zufällig einige der Ordner aus und versuche, FIND_PACKAGE zu verwenden. Dies alles funktioniert gut.

%Vor%

Das besondere, das ich verwende, ist property_tree . Es funktioniert nicht und die folgende Fehlermeldung wird angezeigt:

  

CMake-Fehler bei /Applications/CMake.app/Contents/share/cmake-3.1/Modules/FindBoost.cmake:1182 (Nachricht):

     

Die angeforderten Boost-Bibliotheken konnten nicht gefunden werden.

     

Boost-Version: 1.55.0

     

Boost include Pfad: / usr / local / include

     

Folgende statische Boost-Bibliotheken konnten nicht gefunden werden:

%Vor%

Könnte jemand erklären, wie oder wo ich die richtigen Bibliotheksnamen für Boost finde?

    
Yuchen Zhong 05.11.2014, 03:57
quelle

2 Antworten

12

Der COMPONENTS -Teil von FIND_PACKAGE sucht nur nach kompilierten Bibliotheken. Es ist nicht in der Lage, nach den Header-Only-Bibliotheken zu suchen, die einen Hauptteil von Boost ausmachen. Es gibt nur ein paar Bibliotheken, die verlinkt werden müssen (meistens diejenigen, die plattformspezifische Dinge ausführen).

Aus Ihren Beispielen müssen nur thread , signals (im Gegensatz zu signals2 , das nur für den Header ist), system und program_options vorher erstellt und dann mit Ihrem Programm verknüpft werden. Im Übrigen genügt es, die relevanten Header-Dateien einzubinden.

Daher ist es ausreichend, ${Boost_INCLUDE_DIRS} zu den Include-Verzeichnissen Ihres Ziels hinzuzufügen.

Hier finden Sie eine Liste der Bibliotheken dieser Bibliotheken. Welche Boost-Bibliotheken sind nur für den Header gedacht ?

    
Johannes S. 05.11.2014, 07:54
quelle
0

Wenn die Boost-Bibliothek kompiliert wird, dann ist der Komponentenname im Wesentlichen der Name der Bibliothek in Kleinbuchstaben ohne Präfixe und Suffixe (zum Beispiel für boost_system-vc141-mt-x64-1_66.lib wäre es 'system')

Siehe auch: Ссылка

    
Leonid 22.03.2018 12:10
quelle

Tags und Links