Сборка cpp-netlib с помощью CMake

Я скачал исходник cpp-netlib, распаковал его в папку и по какой-то причине я полностью потерян. Я внимательно прочитал документацию, в которой говорится, что я должен загрузить CMake, что я и сделал. Затем я установил исходный каталог и собрал каталоги, и, нажав кнопку "Создать", я получил следующий вывод:

The CXX compiler identification is MSVC 19.0.23506.0
Check for working C compiler using: Visual Studio 14 2015
Check for working C compiler using: Visual Studio 14 2015 -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler using: Visual Studio 14 2015
Check for working CXX compiler using: Visual Studio 14 2015 -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/FindBoost.cmake:1657 (message):
  Unable to find the requested Boost libraries.

  Unable to find the Boost header files.  Please set BOOST_ROOT to the root
  directory containing Boost or BOOST_INCLUDEDIR to the directory containing
  Boost's headers.
Call Stack (most recent call first):
  CMakeLists.txt:49 (find_package)


Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing:  OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR) 
Looking for pthread.h
Looking for pthread.h - not found
Found Threads: TRUE  
CMake Error at CMakeLists.txt:131 (export):
  export given target "cppnetlib-client-connections" which is not built by
  this project.


Configuring incomplete, errors occurred!
See also "C:/Users/Nick/Documents/cpp-netlib/cpp-netlib-build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/Nick/Documents/cpp-netlib/cpp-netlib-build/CMakeFiles/CMakeError.log"

Он не мог найти библиотеки Boost, и вот где я застрял. Я установил boost, но я понятия не имею, где установить "BOOST_ROOT". Я провел некоторое исследование по этому вопросу, попытался использовать командную строку с -DBOOST_ROOT вариант вот так:

c:\Program Files>cmake -DBOOST_ROOT=/boost/boost_1_55_0

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

CMake Error: The source directory "C:/Program Files" does not appear to contain
CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

Я действительно не уверен, что делать сейчас, и я чувствую, что это не конец моих проблем... Есть ли что-то очевидное, что я пропускаю?

1 ответ

Решение

Вам нужно либо запустить cmake из исходного дерева (которое будет содержать CMakeLists.txt), либо, что более типично, запустить его из папки сборки и указать, где находится исходное дерево. Распространенным случаем будет создание папки сборки рядом с исходным деревом и запуск cmake ../sourcedir,

Вы, кажется, изначально использовали графический интерфейс; конечно, это дает возможность установить переменную BOOST_ROOT?

В качестве альтернативы, если вы просто добавите boost в пути include / lib VC++ (либо в директории vc, либо установив%INCLUDE%/%LIB%), вам, вероятно, не понадобится BOOST_ROOT. То же самое для OpenSSL.

Другие вопросы по тегам