Сборка 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.