CMakeLists.txt install
本部分是关于ros CMakeLists.txt install :可参考http://wiki.ros.org/catkin/CMakeLists.txt
1.CMakeLists.txt中的install规则之前的构建时间完成之后,目标将会放在catkin空间的devel空间之下.然而,通常我们想把目标安装到系统里面(关于安装路径的信息在REP 122中找到),以便可以由其他人来使用或者可以在一个局部文件中用于系统安装层面的测试.换句话说,如果想要"make install"你的代码,那么就需要指定目标安装在哪儿.
以上的完成都是通过CMake install()函数来实现,下面是install函数的一些参数:
1)TARGETS 哪一个目标将要被安装.
2)ARCHIVE DESTINATION 静态库以及DLL(Windows).lib
3)LIBRARY DESTINATION 非-DLL共享库以及模块(modules)
4)RUNTIME DESTINATION 可执行目标以及DLL(Windows)格式的共享库
以共享库作为例子:
- install(TARGETS ${PROJECT_NAME}
- ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
- LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
- RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
- )
可执行文件的例子:
- install(TARGETS ${PROJECT_NAME}_node
- RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
- )
除了这些标准的目标之外,一些文件必须安装到指定的文件夹.例如:a library containing Python bindings must be installed to a different folder to be importable in Python:
- install(TARGETS python_module_library
- ARCHIVE DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION}
- LIBRARY DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION}
- )
2.安装python可执行脚本
对于python代码,不同于c++风格,在你的CMakeLists.txt中使用如下,即可:
- catkin_install_python(PROGRAMS scripts/myscript
- DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
对于安装python脚本以及模块的详细细节,以及如果布局整个文件夹,可参考catkin manual.
如果只是安装python脚本,不需要提供任何modules,那么就不需要创建上面提到的setup.py文件,也不需要调用catkin_python_setup().
3.安装头文件
头文件也必须安装到include文件夹中,通常通过安装整个文件夹的文件来实现(可选择的通过文件名类型以及排除svn 子文件夹的方式来过滤).通过以下安装规则来实现:
- install(DIRECTORY include/${PROJECT_NAME}/
- DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
- PATTERN ".svn" EXCLUDE
- )
或者如果在include下的子文件没有匹配package名字:
- install(DIRECTORY include/
- DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}
- PATTERN ".svn" EXCLUDE
- )
4.安装launch文件以及其他的资源
其他的资源像launch文件可以被安装到${CATKIN_PACKAGE_SHARE_DESTINATION}:
- install(DIRECTORY launch/
- DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
- PATTERN ".svn" EXCLUDE)
CMakeLists.txt install的更多相关文章
- ubuntu 16.04上源码编译和安装cgal并编写CMakeLists.txt | compile and install cgal on ubuntu 16.04
本文首发于个人博客https://kezunlin.me/post/39ab7ed9/,欢迎阅读最新内容! compile and install cgal on ubuntu 16.04 Guide ...
- 工程下CmakeLists.txt
2.工程下Cmake 本小节的任务是让上一小结的程序更像一个工程: 为工程添加一个子目录 src,用来放置工程源代码 : 添加一个子目录doc,用来放置这个工程的文档 hello.txt: 在工程目录 ...
- ROS中的CMakeLists.txt
在ROS的编程过程中,如果CMakeLists.txt如果写不好,编译就很难成功.如果看不懂CMakeLists.txt那么很多错误你也不知道时什么回事.所以深入了解它是很有必要的.现在我们就来看看它 ...
- [CMAKE] 详解CMakeLists.txt文件
[快速查询]https://cmake.org/cmake/help/v2.8.8/cmake.html#section_Commands 1 CMake简介 CMake是跨平台编译工具,比make更 ...
- Makefile 和 CMakeLists.txt
Makefile Makefile 的格式 target: prerequisites [tab]command 例子 #Makefile all:chap1 chap2 chap1: - - - : ...
- ROS中的CMakeLists.txt (转)
在ROS的编程过程中,如果CMakeLists.txt如果写不好,编译就很难成功.如果看不懂CMakeLists.txt那么很多错误你也不知道时什么回事.所以深入了解它是很右必要的.现在我们就来看看它 ...
- Ros学习——Cmakelists.txt文件解读
1.过程 .Required CMake Version (cmake_minimum_required) //CMake 需要的版本 .Package Name (project()) //#定义工 ...
- g2o20160430下的csparse文件夹内的CMakeLists.txt
1. g2o20160430下的csparse文件夹内的CMakeLists.txt cmake_minimum_required(VERSION 2.6) PROJECT(csparse) SET( ...
- 用CMakeLists.txt组织工程
1 一个工程会有多个CMakeLists.txt,如何组织这些CMakeLists.txt来构建一个工程? 1.1 最外层一个CMakeLists.txt,是总的CMakeList.txt,在这个里 ...
随机推荐
- 手写Mybatis,还需要后面调整下
参考博客 https://blog.csdn.net/Kurozaki_Kun/article/details/81482212 个人理解 读取Mybatis配置文件 数据库连接信息 读取Mapper ...
- mysql,分组后,再次进行过滤
查出平均分大于80以上的班级 select class_id, avg(score) from students group by class_id having avg(score)>80; ...
- 【学习笔记】可持久化并查集(BZOJ3673)
好久之前就想学了 然后今天恰巧一道题需要用到就学了 前置芝士 1.主席树[可持久化数组] 2.并查集 如果你掌握了前面两个那么这个东西你就会觉得非常沙茶.. 构造 可持久化并查集 = 主席树 + 并 ...
- Hadoop搭建完全分布式
ubuntu系统下: https://blog.csdn.net/u014636511/article/details/80171002 centos系统下: https://blog.csdn.ne ...
- sql中强制使用索引
如果在sql中使用的索引不生效,可以使用FORCE INDEX(索引),来强制使用索引: 例: SELECT COUNT(DEAL_STAT) FROM c_pac FORCE INDEX (IDX ...
- 【锁】MySQL和Oracle行锁比较
InnoDB INNODB表是索引组织的表,主键是聚集索引,非主键索引都包含主键信息. INNODB默认是行锁. INNODB行锁是通过给索引项加锁来实现的,即只有通过索引条件检索数据,InnoDB才 ...
- SQL Server 2005 的动态管理视图DMV和函数DMF
优化 的动态管理视图DMV和函数DMF SQL Server 05提供了动态管理视图Dynamic Management Views和函数 Functions,方便了我们对系统运行情况的监控,故障诊断 ...
- PHP curl_error函数
curl_error — 返回一个保护当前会话最近一次错误的字符串 说明 string curl_error ( resource $ch ) 返回一条最近一次cURL操作明确的文本的错误信息. 参数 ...
- LOJ 6432 「PKUSC2018」真实排名——水题
题目:https://loj.ac/problem/6432 如果不选自己,设自己的值是 x ,需要让 “ a<x && 2*a>=x ” 的非 x 的值不被选:如果选自己 ...
- AcWing 248. 窗内的星星 (扫描线)打卡
题目:https://www.acwing.com/problem/content/250/ 题意:给你n个点,现在问你能每个点都有个权值,问你能覆盖最多的权值是多少,边界不算 思路:这个其实和我之前 ...