一个简单的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)

最新文章

  1. svn 服务器搭建
  2. NPOI导出Excel(含有超过65335的处理情况)
  3. 关于HADOOP HA 中DFSZKFC的理解
  4. java学习之协调同步的线程
  5. HDU 5067
  6. [转载]为什么我希望用C而不是C++来实现ZeroMQ
  7. 我所经历的SAP选型
  8. 团体程序设计天梯赛-练习集L1-015. 跟奥巴马一起画方块
  9. SRM 507(2-1000pt)
  10. redhat7 常用命令
  11. 流API--流的基础知识
  12. PID实战-STM32电机PWM力矩调节系统
  13. flask读书笔记
  14. SWOT分析法——进行项目管理的高效方法
  15. s21day07 python笔记
  16. ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解
  17. Git项目协同开发学习笔记2:项目库开发协作相关命令
  18. quartz 的简单使用
  19. SQL脚本运行
  20. python基础学习1-三元表达式和lambda表达式

热门文章

  1. SpringBoot拦截器中Bean无法注入(转)
  2. 远程文件同步详解(Remote File Sync)
  3. 居中 html css
  4. fixed 和 absolute 定位的区别
  5. 查询订阅某topic的所有consumer group(Java API)
  6. maven国内镜像(国内oschina的maven服务器关了)
  7. Elasticsearch笔记七之setting,mapping,分片查询方式
  8. 向combobox控件中添加元素
  9. BZOJ_3436_小K的农场_差分约束
  10. Docker系列之swarm集群搭建