做音乐网站要什么源码,wordpress 导航网站主题,wordpress文章中加入代码,如何制作网页内容CMake笔记之CMAKE_INSTALL_PREFIX详解以及ROS中可执行文件为什么会在devel_lib中 code review! 文章目录 CMake笔记之CMAKE_INSTALL_PREFIX详解以及ROS中可执行文件为什么会在devel_lib中1.CMAKE_INSTALL_PREFIX详解变量作用设置 CMAKE_INSTALL_PREFIX示例影响范围常见用法特别…CMake笔记之CMAKE_INSTALL_PREFIX详解以及ROS中可执行文件为什么会在devel_lib中 code review! 文章目录 CMake笔记之CMAKE_INSTALL_PREFIX详解以及ROS中可执行文件为什么会在devel_lib中1.CMAKE_INSTALL_PREFIX详解变量作用设置 CMAKE_INSTALL_PREFIX示例影响范围常见用法特别注意总结 2.为什么我可以在这里找到我的可执行文件devel/lib/ros_templete_pub/ros_templete_pub构建目录结构安装目录结构流程解释总结 1.CMAKE_INSTALL_PREFIX详解
CMAKE_INSTALL_PREFIX 是 CMake 中的一个重要变量它定义了安装路径的前缀决定了项目安装目录的根位置。理解和正确使用 CMAKE_INSTALL_PREFIX 对于控制软件包的安装位置非常重要特别是在多项目构建和部署环境中。
变量作用
CMAKE_INSTALL_PREFIX 决定了 make install 或 cmake --install 命令将项目文件安装到哪个根目录。默认情况下它的值通常是 /usr/local但可以根据需要进行修改。
设置 CMAKE_INSTALL_PREFIX
可以在运行 cmake 命令时通过命令行参数设置 CMAKE_INSTALL_PREFIX例如
cmake -DCMAKE_INSTALL_PREFIX/desired/install/path ..或者在 CMakeLists.txt 中设置
set(CMAKE_INSTALL_PREFIX /desired/install/path CACHE PATH Install path prefix)示例
假设有一个简单的 CMake 项目
cmake_minimum_required(VERSION 3.0)
project(MyProject)add_executable(my_executable main.cpp)install(TARGETS my_executableRUNTIME DESTINATION bin)如果运行以下命令
cmake -DCMAKE_INSTALL_PREFIX/home/user/myproject_install ..
make
make install那么 my_executable 会被安装到 /home/user/myproject_install/bin 目录中。
影响范围
CMAKE_INSTALL_PREFIX 影响所有相对路径的安装目标。例如以下 CMake 语句
install(TARGETS my_executable RUNTIME DESTINATION bin)结合 CMAKE_INSTALL_PREFIX会将 my_executable 安装到 ${CMAKE_INSTALL_PREFIX}/bin 目录。
常见用法 默认安装路径: 默认值是 /usr/local适合系统全局安装。 用户本地安装: 对于没有管理员权限的用户可以将安装路径设为用户的主目录例如 ~/myproject_install。 cmake -DCMAKE_INSTALL_PREFIX~/myproject_install ..自定义目录: 在构建环境中可能需要将不同项目安装到特定目录中以避免冲突。 cmake -DCMAKE_INSTALL_PREFIX/opt/myproject ..特别注意
CMake 缓存: CMAKE_INSTALL_PREFIX 是一个缓存变量如果修改了它需要重新配置 CMake 或删除 CMakeCache.txt 文件以确保新值生效。相对路径: 如果给 CMAKE_INSTALL_PREFIX 赋值相对路径它会被解释为相对于当前构建目录的路径。通常最好提供绝对路径以避免混淆。
总结
CMAKE_INSTALL_PREFIX 是一个关键变量用于指定项目的安装根目录。通过正确设置这个变量可以灵活地控制项目的安装位置满足不同的部署需求。无论是全局安装、用户本地安装还是特定目录安装CMAKE_INSTALL_PREFIX 都能提供强大的支持。
2.为什么我可以在这里找到我的可执行文件devel/lib/ros_templete_pub/ros_templete_pub
使用
install(TARGETS ros_templete_pubRUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)在 ROS机器人操作系统中使用 Catkin 构建系统时构建过程中生成的文件通常会放置在 devel 目录中。这是因为 Catkin 使用了两个主要的构建空间devel 和 install。下面解释为什么会在 devel/lib/ros_templete_pub/ros_templete_pub 找到可执行文件。
构建目录结构
devel 目录: 该目录是开发空间development space在这里构建的文件可以直接使用而无需安装。运行 catkin_make 或 catkin build 时生成的可执行文件和其他构建产物会放置在 devel 目录下。devel/lib 目录通常包含构建生成的可执行文件因为在 ROS 中lib 目录不仅用于库文件也用于存放节点的可执行文件。
安装目录结构
install 目录: 该目录是安装空间install space通过执行 catkin_make install 或 catkin build --install 生成的文件会被安装到这里。install 目录中的结构由 CMake install 命令决定例如 install(TARGETS ...) 语句。
流程解释 构建阶段: 当运行 catkin_make 或 catkin build 时CMake 会在 devel 目录中生成所有构建产物。可执行文件通常会放置在 devel/lib/package_name/ 目录中。因此会在 devel/lib/ros_templete_pub/ros_templete_pub 找到的可执行文件。 安装阶段: 如果运行 catkin_make install 或 catkin build --installCMake 会根据 CMakeLists.txt 中的 install 规则将文件安装到 install 目录中。例如使用 install(TARGETS ros_templete_pub RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) 会将 ros_templete_pub 安装到 ${CMAKE_INSTALL_PREFIX}/bin即通常为 install/bin/。
总结
在 devel/lib/ros_templete_pub/ros_templete_pub 找到可执行文件是因为
开发空间: 在构建过程中Catkin 默认将可执行文件放置在 devel 目录中以便可以立即运行和测试这些文件而无需执行安装步骤。目录结构: devel/lib/package_name/ 是 Catkin 默认的可执行文件输出路径。
如果需要将可执行文件安装到其他位置请使用 catkin_make install 或 catkin build --install并确保在的 CMakeLists.txt 中正确配置了 install 命令。