是否有任何用例
target_link_libraries(my-lib x y z)
add_dependencies(my-lib x) # this is not just a waste of bytes?
Run Code Online (Sandbox Code Playgroud)
如果是这样,有人可以解释它会是什么吗?
我目前有一个名为LIBS的项目,其结构如下:
??? Lib1
? ??? CMakeLists.txt
? ??? lib1-class.cpp
? ??? lib1-class.h
??? lib2
? ??? CMakeLists.txt
? ??? lib2-class.cpp
? ??? lib2-class.h
??? cmake
? ??? LIBSConfig.cmake.in
??? CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
在主cmake文件中,我有:
install(
TARGETS
lib1
lib2
DESTINATION
${PROJECT_DIRNAME_lib}
EXPORT
${PROJECT_NAME}Exports
)
install(
EXPORT
${PROJECT_NAME}Exports
DESTINATION
${PROJECT_DIRNAME_lib}
)
Run Code Online (Sandbox Code Playgroud)
因为我想将它们导出到find_package()可以发现的包中.
我的问题是我生成lib1并lib2在各自的目录中安装它们时,Cmake告诉我
Error:install TARGETS given target "lib1" which does not exist in this directory.
Run Code Online (Sandbox Code Playgroud)
正如这里所建议的,我的理解是我应该Export()在lib1和lib2中使用以下形式的东西:
export(TARGETS lib1 FILE lib1Exports.cmake)
Run Code Online (Sandbox Code Playgroud)
在LIBS项目中,有这样的事情:
ADD_LIBRARY(lib1 UNKNOWN …Run Code Online (Sandbox Code Playgroud)