相关疑难解决方法(0)

CMake:如何为安装不同的目标创建别名?

假设我有以下库:

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)

alias install cmake shared-libraries static-libraries

12
推荐指数
1
解决办法
3393
查看次数

对于CMake的"安装",CONFIGURATIONS参数有什么作用?

我不知道CONFIGURATIONSCMake install命令的论点是什么.当我CONFIGURATIONS在安装文件时使用debug或release时,没有安装任何文件.发生了什么?

有人可以更详细地解释它.如果你给我一些例子,那将是最好的.

PS这与以下内容不同:对于CMake的"安装"命令,COMPONENT参数可以做什么?

cmake

6
推荐指数
1
解决办法
6101
查看次数

内置的 INSTALL 目标有哪些依赖项?

CMake 有一个内置install目标,因此您可以make install在生成 Makefile 或INSTALL在 Visual Studio 中构建项目等时使用。

此目标的行为由install()CMake 文件中的各种命令定义,例如将现有 CMake 目标的文件或产品复制到特定安装目录。

install()命令还允许您指定一个组件。如果您随后调用 CMake 指定一个组件,则install目标将安装与该特定组件关联的产品。

但是,我还没有发现:目标依赖于哪些目标install

  • 如果我的一个目标没有编译,这是否会导致make install失败,即使该目标不产生任何安装内容?
  • 如果我正在构建一个特定组件,并且我已经在原始 CMake 调用中指定了它,是否会在我的源代码树中make install构建所有目标(但只安装一个组件)?还是只构建安装特定组件所需的目标?

cmake

4
推荐指数
1
解决办法
1003
查看次数