Сбой компиляции Caffe с Cmake и Ninja

Я попытался скомпилировать Caffe в Windows с включенной опцией CMAKE_BUILD_SHARED_LIBS, но это не удалось, и мне было сказано, что мне нужно использовать Ninja. Когда я устанавливаю для Ninja значение 1 в файле конфигурации (build_win.cmd) и запускаю скрипт, он жалуется и выдает следующее сообщение об ошибке:

 CMake Error: CMake was unable to find a build program corresponding to
 "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select
 a different build tool. CMake Error: CMAKE_C_COMPILER not set, after
 EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after
 EnableLanguage
 -- Configuring incomplete, errors occurred! ERROR: Configure failed

Я не знаю, какие еще шаги мне нужно предпринять, чтобы процесс компиляции прошел успешно. Все, что я сделал, это скачал Ninja, извлек его куда-нибудь и добавил в переменную окружения.

Нужно ли мне также устанавливать gcc?

Обновлять

Как было предложено в комментариях, я проверил свой путь и заметил, что он плохо настроен. Я исправил, что теперь я получаю эти ошибки, кажется, он не может найти нужные библиотеки:

-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: C:/Users/Master/gcc/bin/gcc.exe
-- Check for working C compiler: C:/Users/Master/gcc/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Users/Master/gcc/bin/c++.exe
-- Check for working CXX compiler: C:/Users/Master/gcc/bin/c++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  cmake/Dependencies.cmake:8 (find_package)
  CMakeLists.txt:79 (include)


CMake Warning at C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  cmake/Dependencies.cmake:8 (find_package)
  CMakeLists.txt:79 (include)


CMake Warning at C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
  Imported targets not available for Boost version
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
  C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
  cmake/Dependencies.cmake:8 (find_package)
  CMakeLists.txt:79 (include)


-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
CMake Error at C:/Program Files/CMake/share/cmake-3.7/Modules/FindBoost.cmake:1793 (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):
  cmake/Dependencies.cmake:8 (find_package)
  CMakeLists.txt:79 (include)


-- Could NOT find GFlags (missing:  GFLAGS_INCLUDE_DIR GFLAGS_LIBRARY)
-- Could NOT find Glog (missing:  GLOG_INCLUDE_DIR GLOG_LIBRARY)
CMake Error at C:/Program Files/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.7/Modules/FindProtobuf.cmake:393 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/ProtoBuf.cmake:9 (find_package)
  cmake/Dependencies.cmake:48 (include)
  CMakeLists.txt:79 (include)


-- Configuring incomplete, errors occurred!
See also "G:/caffe_latest2/build/CMakeFiles/CMakeOutput.log".
See also "G:/caffe_latest2/build/CMakeFiles/CMakeError.log".
ERROR: Configure failed

person Rika    schedule 15.04.2017    source источник
comment
Убедитесь, что ваш путь ниндзя указан правильно. Как ясно сказано в сообщении об ошибке - он не может найти Ninja.   -  person tambre    schedule 15.04.2017
comment
@tambre: Спасибо, это действительно было неправильно. Я исправил это, теперь я получаю другие ошибки! он не может найти зависимости!   -  person Rika    schedule 15.04.2017


Ответы (1)


Я нашел причину. Я установил GCC в своей системе, и cmake пытался использовать его вместо компилятора Visual C++.
Все, что нужно, это просто загрузить Ninja, поместить его в переменную пути, и все готово.
Изменить необходимые настройки в build_win.cmd для использования Ninja, и все готово

person Rika    schedule 15.04.2017