Cmake kann Boost-Bibliotheken nicht finden

8

Ich bin neu in Cmake und boote Bibliotheken in C ++. Ich arbeite an einem Projekt, das Boake und Cmake braucht. Ich verwende Cmake Version 2.8.11, MS Visual Studio 2013 und Boost 1.54.0. Wenn ich versuche, von Cmake zu konfigurieren, gibt es den folgenden Fehler:

%Vor%

Ich habe einige meiner Fragen gesehen und versucht, aber alles ging umsonst. Meine Cmakelists.txt-Datei sieht wie folgt aus:

%Vor%

Die CMake-Ausgabe nach der Einstellung von Boost_DEBUG ON lautet wie folgt:

%Vor%

Ich habe auch versucht, Set (Boost_USE_STATIC_LIBS ON) zu schreiben, aber leider hat es nicht geholfen. Vorschläge sind sehr willkommen. Danke.

    
user1382494 10.10.2013, 18:28
quelle

3 Antworten

12

Ihre Konfiguration sieht ein bisschen komisch und dreckig aus. Besonders Dinge wie:

%Vor%

Es ist keine C / C ++ Präprozessordefinition! Es ist eine CMake-Variable, mit der gesteuert wird, wie CMake die Verknüpfungsstufe Ihres Projekts mit Boost-Bibliotheken definiert.

Wenn Sie Boost korrekt kompiliert haben und nichts kaputt gemacht haben, sieht die Verzeichnisstruktur normalerweise so aus:

%Vor%

HINWEIS: Das Stammverzeichnis von Boost, <boost-dir> , scheint in Ihrem Fall D:/boost_1_54_0 zu sein.

Wenn es in Ihrem Fall nicht wie oben aussieht, würde ich vorschlagen, es manuell zu dem oben genannten neu anzuordnen, da dies wieder so ist.

Wenn fertig, machen wir eine CMake-Konfiguration. Ich schlage vor, die Dinge zunächst einfach und sauber zu halten und den CMake-Konventionen zu folgen. Testen Sie Folgendes:

%Vor%

HINWEIS: Am oberen Rand von FindBoost.cmake finden Sie eine ausführliche Beschreibung dieser beiden Variablen.

%Vor%

HINWEIS: So erzwingen Sie die statische Verknüpfung, indem Sie die CMake-Variable richtig setzen, aber nicht wie bei der Einstellung einer nicht vorhandenen C / C ++ - Präprozessordefinition.

%Vor%

HINWEIS: Geben Sie anstelle von <target_name> den Namen des Ziels ein, das Sie erstellen möchten (ausführbare Datei, statische / gemeinsam genutzte Bibliothek usw.).

    
Alexander Shukaev 11.10.2013 12:43
quelle
0

Boost 1.54.0 kann nicht mit VS2013 erstellt werden, ohne einige Patches anzuwenden. Siehe auch hier Wie baue ich Boost mit neuen? Visual Studio 2013 Vorschau?

Wenn Sie es richtig erstellen, sollte alles andere funktionieren.

    
Vertexwahn 11.10.2013 12:47
quelle
-4

Benennen Sie im Ordner lib um:
libboost_thread-vc100-mt-1_49.lib bis boost_thread-vc100-mt-1_49.lib
libboost_thread-vc100-mt-gd-1_49.lib bis boost_thread-vc100-mt-gd-1_49.lib
... und so weiter. Dann können sie gefunden werden.

    
Eryue 21.07.2014 14:56
quelle

Tags und Links