当使用CMake构建开源项目(在我的情况下,它是柠檬图库)时,当我尝试通过-DBUILD_SHARED_LIBS=1
构建共享库时发生此错误:CMake错误:共享库目标没有库目标的目标
TARGETS given no LIBRARY DESTINATION for shared library target
这个错误来自哪里,我该如何解决?
当使用CMake构建开源项目(在我的情况下,它是柠檬图库)时,当我尝试通过-DBUILD_SHARED_LIBS=1
构建共享库时发生此错误:CMake错误:共享库目标没有库目标的目标
TARGETS given no LIBRARY DESTINATION for shared library target
这个错误来自哪里,我该如何解决?
在我的CMakeLists.txt
中,我的INSTALL命令没有LIBRARY参数。
从此改变:
INSTALL(
TARGETS lemon
ARCHIVE DESTINATION lib
COMPONENT library
)
这样:
INSTALL(
TARGETS lemon
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib # <-- Add this line
COMPONENT library
)
固定我的问题。
我得到这个......出现这种情况的另一个原因是,当你创建一个共享库
add_library($ {NAME} SHARED源)
那么当到达的CMake在Windows平台上安装命令,它抱怨这些错误,解决办法是使用RUNTIME而不是LIBRARY,就像
if(WIN32)
install(TARGETS ${NAME}
RUNTIME DESTINATION path)
else()
install(TARGETS ${NAME}
LIBRARY DESTINATION path)
endif()
我想你的意思是“'RUNTIME'而不是'LIBRARY'”。 – 2016-06-09 15:42:04
对,纠正。 – 2016-06-09 22:49:37
你的例子中'path'的两个用法是不同的吗?如果没有,您可以使用 'install(TARGETS $ {NAME} 运行时目的地路径 LIBRARY DESTINATION路径 ) – Unapiedra 2016-10-26 23:30:49