一个简单的cmake例子
2024-10-18 21:25:23
一个简单的cmake例子CMakeLists.txt,生成动态库文件,可以指定发布目录。
尚不支持:
1、交叉编译环境配置
2、添加依赖库
#在当前目录新建一个build目录,然后cd build;cmake ..
#这样的好处是,可以将cmake生成的内容,和源码文件分离 #定义好版本需求
cmake_minimum_required (VERSION 2.6)
#工程名字
project (Libtree)
#编译结果发布路径
set ( CMAKE_INSTALL_PREFIX ./_install) ## The version number.
set (Tutorial_VERSION_MAJOR )
set (Tutorial_VERSION_MINOR ) #设置源码文件,分别是avl.c rb.c splay.c
set (LIBHELLO_SRC avl.c rb.c splay.c) #动态库
ADD_LIBRARY (tree SHARED ${LIBHELLO_SRC})
#静态库
ADD_LIBRARY (tree_static STATIC ${LIBHELLO_SRC}) SET_TARGET_PROPERTIES (tree_static PROPERTIES OUTPUT_NAME "tree")
GET_TARGET_PROPERTY (OUTPUT_VALUE tree_static OUTPUT_NAME)
MESSAGE (STATUS "This is the tree_static OUTPUT_NAME: " ${OUTPUT_VALUE}) # cmake在构建一个新的target时,会尝试清理掉其他使用这个名字的库,
# 因此,在构建libtree.a时,就会清理掉libtree.so.
# 为了回避这个问题,比如再次使用SET_TARGET_PROPERTIES定义 CLEAN_DIRECT_OUTPUT属性。
SET_TARGET_PROPERTIES (tree_static PROPERTIES CLEAN_DIRECT_OUTPUT )
SET_TARGET_PROPERTIES (tree PROPERTIES CLEAN_DIRECT_OUTPUT ) # 按照规则,动态库是应该包含一个版本号的,
# VERSION指代动态库版本,SOVERSION指代API版本。
SET_TARGET_PROPERTIES (tree PROPERTIES VERSION ${Tutorial_VERSION_MAJOR}.${Tutorial_VERSION_MINOR} SOVERSION )
#在本例中我们将tree的共享库安装到<prefix>/lib目录;
# 将libtree.h安装<prefix>/include/tree目录。 INSTALL (TARGETS tree tree_static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
INSTALL (FILES libtree.h DESTINATION include/tree)
最新文章
- svn 服务器搭建
- NPOI导出Excel(含有超过65335的处理情况)
- 关于HADOOP HA 中DFSZKFC的理解
- java学习之协调同步的线程
- HDU 5067
- [转载]为什么我希望用C而不是C++来实现ZeroMQ
- 我所经历的SAP选型
- 团体程序设计天梯赛-练习集L1-015. 跟奥巴马一起画方块
- SRM 507(2-1000pt)
- redhat7 常用命令
- 流API--流的基础知识
- PID实战-STM32电机PWM力矩调节系统
- flask读书笔记
- SWOT分析法——进行项目管理的高效方法
- s21day07 python笔记
- ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解
- Git项目协同开发学习笔记2:项目库开发协作相关命令
- quartz 的简单使用
- SQL脚本运行
- python基础学习1-三元表达式和lambda表达式
热门文章
- SpringBoot拦截器中Bean无法注入(转)
- 远程文件同步详解(Remote File Sync)
- 居中 html css
- fixed 和 absolute 定位的区别
- 查询订阅某topic的所有consumer group(Java API)
- maven国内镜像(国内oschina的maven服务器关了)
- Elasticsearch笔记七之setting,mapping,分片查询方式
- 向combobox控件中添加元素
- BZOJ_3436_小K的农场_差分约束
- Docker系列之swarm集群搭建