如何使用CMake安装

Aar*_*man 11 cmake

我可以使用 CMake 成功构建我的项目,但是我可以使用它来安装结果吗?

随着Make我添加目标install并从命令行调用它。我无法弄清楚 CMake 是否可以实现。

最终目标是以平台可移植的方式安装静态库、动态库和相应的头文件。我怎么想它会的工作:在Linux上,复制/usr/include/usr/lib。在 Windows 上,它可能是用户提供的文件夹,其中包含一个 include 和 lib 文件夹。

安装规则表明,这样的事情是可能的。但我如何实际使用它?

目前我执行以下操作:

  1. mkdir 构建
  2. 光盘构建
  3. ..
  4. cmake --build 。

在这里,我希望做这样的事情:

  1. cmake --install 。

vre*_*vre 21

您可以使用该命令cmake --build . --target install --config Debug进行安装。

CMake 的构建工具模式支持在这种情况下感兴趣的更多参数。您可以通过--target选项选择要构建的目标,通过选项构建的配置--config,并通过选项将参数传递给底层构建工具-- 。有关构建工具模式,请参阅文档(构建工具模式)。

在 CMake 3.15 及更新版本中,您可以使用更简单的cmake --install命令来安装项目

cmake --install . --config Debug

它还支持--prefix,--component--strip

  • @Jay如果你知道你有CMake 3.15或更高版本,你最好使用:`cmake --install 。`(https://cmake.org/cmake/help/latest/manual/cmake.1.html#install-a-项目) (3认同)
  • @Jay `--install` 选项最近才在 CMake 3.15 中添加。它添加了一些有用的选项,例如组件明智安装和剥离可执行文件。 (2认同)

小智 8

install您可以在 CMakeLists 上使用该命令来为您的项目生成安装规则。下面显示了一个基本示例,但如果您需要更复杂的内容,请检查cmake 文档。

project (Test)

add_executable(test main.cpp)

install(TARGETS test DESTINATION bin)
Run Code Online (Sandbox Code Playgroud)

然后生成 makefile 后,您可以键入sudo make install,测试应用程序将安装在系统 bin 文件夹中。

  • 请注意,“DESTINATION bin”是运行时/可执行依赖项的[默认](https://cmake.org/cmake/help/latest/command/install.html#installing-targets),因此您可以只使用“install( TARGETS test)`并且它应该结束在同一个地方 (5认同)