cmake 中安装命令的作用是什么?

What install command does in cmake?

对不起,我太天真了。我试图从这个 cmake 网站的 link 了解,但无法理解。我有一个示例 cmake 文件,其中可执行文件由

生成

add_executable(${PROJECT_NAME}_node src/filename.cpp)

然后通过以下命令安装

install(TARGETS ${PROJECT_NAME}_node ${PROJECT_NAME}
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )

这个 cmake 来自 ROS,所以有 catkin。总体问题保持不变。有人知道吗,为什么我们需要安装 TARGETS/FILES?

无需使用catkin的INSTALL功能

INSTALL 函数只会将你的最终 BINARYLIBRARY 等复制到一个更安全的地方(例如位于 /opt/ros/<your-version>/share,lib,include 的主要 ros 包 space)以保持构建工作space 不那么拥挤,并在您的工作space 损坏时保持文件安全。

INSTALL 至少在两种情况下有用:

  • 你下载一些包的源代码,生成你想在你的系统中使用的二进制文件。你可以 INSTALL 它们在 /usr/bin 下,例如

  • 您编译了一些您将在其他产品中使用的库。它将收集所需的文件(头文件、库...),并且只收集这些文件,并将它们放在已知的位置,无论库编译期望它们在哪里。

你可以直接复制它们,但是依靠CMake可以让这个过程在更高层次上表达。

它只是在本地系统上安装构建的二进制文件。


如果 bashgit 之类的工具必须 从源安装 (例如,要使用其最新版本),请先构建然后安装使用。

如果本地系统没有所需的工具,或者它的包不存在,或者打包的版本是旧的,那么从源代码构建和安装(从私有构建目录到 public 系统目录)是一种正常的方法,或者需要一些定制。