对不起,我太天真了。我试图从此cmake网站的link来了解,但无法理解。我有一个示例cmake文件,其中
生成了一个可执行文件add_executable($ {PROJECT_NAME} _node src / filename.cpp)
然后通过以下命令安装
install(TARGETS $ {PROJECT_NAME} _node $ {PROJECT_NAME}
归档目的地$ {CATKIN_PACKAGE_LIB_DESTINATION}
库目的地$ {CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION $ {CATKIN_PACKAGE_BIN_DESTINATION})
这个cmake来自ROS,所以柳絮在那里。总体问题保持不变。有人知道,为什么我们需要安装TARGETS / FILES?
答案 0 :(得分:0)
您不需要使用柳絮的INSTALL
功能。
INSTALL函数将仅将最终的BINARY
,LIBRARY
等复制到一个更安全的位置(例如,位于/opt/ros/<your-version>/share,lib,include
的主要ros软件包空间),以使构建工作区不再拥挤且以确保文件安全,以防您的工作空间损坏。
答案 1 :(得分:0)
INSTALL
至少在以下两种情况下有用:
您下载了某些软件包的源代码,生成了要在系统中使用的二进制文件。您可以在/ usr / bin下INSTALL
,例如
您将编译一些库,该库将从其他产品中使用。它将收集所需文件(头文件,库...)以及仅这些文件,并将它们放置在已知位置,无论库编译在何处期望它们。
您可以复制它们,但是依靠CMake可以在更高层次上表达该过程。
答案 2 :(得分:0)
它只是在本地系统上安装内置的二进制文件。
如果必须从源中安装bash
或git
之类的工具(例如,使用其最新版本),请先构建它,然后再安装以使用。
如果本地系统没有必需的工具,或者其软件包不存在,或者打包的版本较旧,或者需要某些自定义,则从源代码进行构建和安装(从私有构建目录到公共系统目录)是一种正常方法。