2015-03-17 3 views
1

Когда я пытаюсь использовать CMake на jsonCPP я получаю следующую ошибкуОшибки с CMake и jsonCPP статической целевой библиотеки «jsoncpp_lib_static»

CMake Error at lib_json/CMakeLists.txt:73 (INSTALL): 
install TARGETS given no ARCHIVE DESTINATION for static library target 
"jsoncpp_lib_static" 

Я использую команду из ридх:

cmake -DCMAKE_BUILD_TYPE=debug -DJSONCPP_LIB_BUILD_STATIC=ON -DJSONCPP_LIB_BUILD_SHARED=OFF -G "Unix Makefiles" ../.. 

ответ

0

С ошибка, похоже, вы указываете CMake на CMakeLists.txt внутри «/ jsoncpp/src», а не на корневую в «/ jsoncpp».

Корень CMakeLists.txt определяет переменную ARCHIVE_INSTALL_DIR в this point и используется в «/jsoncpp/src/lib_json/CMakeLists.txt» в this point, чтобы определить Таргет ARCHIVE DESTINATION.

Поскольку вы пропускаете корень CMakeLists.txt, эта переменная никогда не будет установлена.

В сообщении об ошибке упоминается путь lib_json/CMakeLists.txt:73, и это касается «основного» CMakeLists.txt - то есть того, на который вы указали CMake, когда вы его впервые выполнили. Поэтому CMake считает, что корнем является «/ jsoncpp/src» вместо реального корня.

В принципе, чтобы исправить вашу ошибку, очистите папку сборки и перезапустите CMake, чтобы указать папку «/ jsoncpp».


Кстати, хотя в документах конкретно не упоминается об этом, я думаю, что CMAKE_BUILD_TYPE чувствителен к регистру. Вы должны делать -DCMAKE_BUILD_TYPE=Debug.

 Смежные вопросы

  • Нет связанных вопросов^_^