2015-02-02 2 views
0

Я пытаюсь настроить Cmake из терминала Cygwin для окон, моя библиотека Boost находится по адресу/usr/src/boost_1_54_0/libs. Мой файл конфигурации CMake содержит:cygwin cmake не может найти форматированную библиотеку

set(Boost_USE_STATIC_LIBS ON) 
set(Boost_USE_MULTITHREADED ON) 
set(Boost_USE_STATIC_RUNTIME OFF) 
find_package(Boost 1.54.0 COMPONENTS date_time filesystem program_options serialization thread REQUIRED) 
include_directories(${Boost_INCLUDE_DIRS}) 

Однако CMake дает мне следующую ошибку:

Boost version: 1.54.0 

Boost include path: /usr/src/boost_1_54_0 

The following Boost libraries could not be found: 

     boost_date_time 
     boost_filesystem 
     boost_program_options 
     boost_serialization 
     boost_thread 

No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the 
directory containing Boost libraries or BOOST_ROOT to the location of 
Boost. 

Затем я попытался вручную указать каталог на Boostlib с помощью следующей строки перед методом find_package :

set(BOOST_LIBRARYDIR /usr/src/boost_1_54_0/libs) 

Но это также не работает.

Может ли кто-нибудь помочь мне?

+0

сообщение указывает на то, что CMake можно найти заголовки, но не ЛИЭС. Что такое содержимое '/ usr/src/boost_1_54_0/libs'? Что произойдет, если вы используете 'Boost_USE_STATIC_LIBS OFF', потому что это то, что я успешно использую в Cygwin? – DevSolar

+1

Вы построили несколько не только заголовков библиотек повышения, как http://www.boost.org/doc/libs/1_57_0/more/getting_started/unix-variants.html предлагает? –

+0

В каталоге/usr/src/boost_1_54_0/libs содержатся все эти пакеты. Если я установил параметр ВЫКЛ, я получил ту же ошибку. –

ответ

0

Чтобы найти библиотеки Boost, cmake полагается на переменную окружения BOOST_ROOT. Он должен указывать на папку, содержащую подталкивание lib (а не libs) и include

Определить его в Cygwin перед вызовом CMake и он должен работать.

В CSH:

setenv BOOST_ROOT "/usr/src/boost_1_54_0" 
Смежные вопросы