2016-06-04 16 views
-1

I Cmake Skript für ein Fenster bin Annahme bauen, und mit einem Problem konfrontiert, die nicht unter * nichts aufgetreten warenCmake include_directories für Schub

set(BOOST_ROOT, "C:/dev/tools/boost_1_60_0") 
include_directories(${INCLUDE_DIRECTORIES} ${BOOST_ROOT} include) 

es nicht funktioniert - bei der Erstellung, kann vc finde keine Boost-Header.

include_directories(${INCLUDE_DIRECTORIES} "C:/dev/tools/boost_1_60_0" include) 

das funktioniert gut.

irgendwelche Ideen, warum es passiert?

nur sicher, für diese Konfiguration vorkompiliert Bibliotheken nicht so erforderlich sind, dann kann ich nicht find_package durchführen, um nur Header mit

Antwort

2

wenn es kein Tippfehler ist, der „“ nicht in der benötigten Set-Anweisung:

set(BOOST_ROOT "C:/dev/tools/boost_1_60_0") 

sollte dies wie erwartet funktionieren.

+0

man! meine Unaufmerksamkeit. Ja, es war eine Wurzel des Problems. Danke vielmals! – amigo421

1

Warum nicht FindBoost()?

find_package(Boost 1.60 REQUIRED) 
include_directories(${Boost_INCLUDE_DIRS}) 
+0

Erstens, es ist nicht hilfreich in meinem Fall, find_package sucht nach Hinweisen, wo Boost installiert werden kann, und Hinweis funktioniert nicht für mich, das ist ein Problem. andererseits ist find_package nur für Binär-Bibliotheken sinnvoll, besonders wenn wir aus einigen Parametern wie Boost-Version, Compiler-Version usw. einen Bibliotheksnamen erzeugen müssen, wenn es nur Header-Bibliotheken gibt, BOOST_ROOT = , nichts zu finden – amigo421

+0

@ amigo421 Sie brauchen keinen Hinweis, fügen Sie einfach Ihren Boost-Pfad zum 'CMAKE_PREFIX_PATH' hinzu – usr1234567