【问题标题】:How to use CMake to install如何使用 CMake 安装
【发布时间】:2018-01-24 17:44:39
【问题描述】:

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

使用Make 添加目标install 并从命令行调用它。我不知道这是否可以通过 CMake 实现。

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

install rule 表明这样的事情是可能的。但是我该如何实际使用它呢?

目前我执行以下操作:

  1. mkdir 构建
  2. cd 构建
  3. cmake ..
  4. cmake --build .

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

  1. cmake --install .

【问题讨论】:

  • 你可以使用cmake --build . --target INSTALL --config Debug
  • 是的!这正是我想要的。如此简单,但我觉得关于 CMake 的一切都隐藏在他们的文档中。现在我知道我必须做什么,我可以立即找到大量的 google 和 SO hits :(

标签: cmake


【解决方案1】:

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

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

在 CMake 3.15 及更高版本中,您可以使用更简单的cmake --install 命令来Install a Project

cmake --install . --config Debug

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

【讨论】:

  • 你知道是否有所有目标选项的列表吗?该文档对此并不十分清楚。到目前为止,我已经找到了干净并安装了。
  • @Art Stuurman 每个 CMake 目标(每个库、每个可执行文件)都有所有、干净、安装目标和一个单独的目标。有关更多默认目标,请参阅底层构建工具的文档。或者查看生成的 Makefile。
  • @Art Stuurman 没错。 CMake 是一个构建工具生成器,而不是构建工具本身。
  • @Jay --install 选项最近才在 CMake 3.15 中添加。它添加了一些有用的选项,例如组件式安装和剥离可执行文件。
  • @Jay 如果你知道你有 CMake 3.15 或更新版本,你最好使用:cmake --install . (cmake.org/cmake/help/latest/manual/…)
【解决方案2】:

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

project (Test)

add_executable(test main.cpp)

install(TARGETS test DESTINATION bin)

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

【讨论】:

  • 请注意,DESTINATION bin 是用于 RUNTIME/可执行依赖项的 default,因此您可以只使用 install(TARGETS test) 它应该在同一个地方结束
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-27
相关资源
最近更新 更多