假设我有以下库:
add_library(myLib_static STATIC ${SRC_FILES})
add_library(myLib SHARED ${SRC_FILES})
# installing header files
install(FILES ${H_FILES} DESTINATION ${INSTDIRHEADER})
# installing binaries
install(TARGETS myLib_static
DESTINATION ${INSTDIRBIN})
install(TARGETS myLib
DESTINATION ${INSTDIRBIN})
Run Code Online (Sandbox Code Playgroud)
如果我执行以下命令,将安装共享和静态库:
make install
Run Code Online (Sandbox Code Playgroud)
如何为每个命令分别安装命令?像这样的东西:
make install-static
make install-shared
Run Code Online (Sandbox Code Playgroud)
更新:
还应在需要时安装头文件:
install(FILES ${H_FILES} DESTINATION ${INSTDIRHEADER})
Run Code Online (Sandbox Code Playgroud) 我不知道CONFIGURATIONSCMake install命令的论点是什么.当我CONFIGURATIONS在安装文件时使用debug或release时,没有安装任何文件.发生了什么?
有人可以更详细地解释它.如果你给我一些例子,那将是最好的.
PS这与以下内容不同:对于CMake的"安装"命令,COMPONENT参数可以做什么?
CMake 有一个内置install目标,因此您可以make install在生成 Makefile 或INSTALL在 Visual Studio 中构建项目等时使用。
此目标的行为由install()CMake 文件中的各种命令定义,例如将现有 CMake 目标的文件或产品复制到特定安装目录。
该install()命令还允许您指定一个组件。如果您随后调用 CMake 指定一个组件,则install目标将仅安装与该特定组件关联的产品。
但是,我还没有发现:目标依赖于哪些目标install?
make install失败,即使该目标不产生任何安装内容?make install构建所有目标(但只安装一个组件)?还是只构建安装特定组件所需的目标?