cmake和jsonCPP静态库目标错误" jsoncpp_lib_static"

时间:2015-03-17 21:41:15

标签: cmake jsoncpp

当我尝试在jsonCPP上使用cmake时,我收到以下错误

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" ../..

1 个答案:

答案 0 :(得分:0)

从错误中看,你好像是将CMake指向" / jsoncpp / src"中的CMakeLists.txt。而不是#34; / jsoncpp"的根词。

根CMakeLists.txt定义this point处的变量ARCHIVE_INSTALL_DIR,并在" /jsoncpp/src/lib_json/CMakeLists.txt"在this point定义目标ARCHIVE DESTINATION

由于您正在跳过根CMakeLists.txt,因此该变量永远不会被设置。

错误消息提到路径lib_json/CMakeLists.txt:73,这与" main"相关。 CMakeLists.txt - 即你第一次执行它时指向CMake的那个。所以CMake认为根是" / jsoncpp / src"而不是真正的根。

基本上,为了修复你的错误,清理你的构建文件夹,然后重新运行CMake指向" / jsoncpp"文件夹中。

<小时/> 顺便说一句,虽然文档没有特别提及,但我认为CMAKE_BUILD_TYPE是区分大小写的。你应该做-DCMAKE_BUILD_TYPE=Debug