一个简单的cmake例子
#在当前目录新建一个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)
一个简单的cmake例子的更多相关文章
- 一个简单的CORBA例子
因为对CORBA分析的需要,这里写一个简单的CORBA例子.从JDK1.2开始,JDK中集成了ORB的实现,本例子使用了JDK1.7,对于JDK1.2+应该都没有问题.这个例子实现一个简单的加减乘除的 ...
- 轻松创建nodejs服务器(1):一个简单nodejs服务器例子
这篇文章主要介绍了一个简单nodejs服务器例子,本文实现了一个简单的hello world例子,并展示如何运行这个服务器,需要的朋友可以参考下 我们先来实现一个简单的例子,hello world ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Netw ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51007512 ...
- 使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 ...
- 一个简单的springmvc例子 入门(1)
一直是从事棋牌游戏,平常用的东西 大多数只是使用一些javase的一些 api对spring 这方面 用到的比较少,每次学了都忘,始终记不住.为了 更轻松学习springboot,从新学习了sprin ...
- 利用VisualStudio单元测试框架举一个简单的单元测试例子
本随笔很简单,不涉及mock和stub对象,而是只给出一个简单的利用Visual Studio单元测试框架的最简单例子.如果需要深入理解Unit Test的原理与艺术,请参考<The art o ...
- 撸一个简单的MVVM例子
我个人以为mvvm框架里面最重要的一点就是VM这部分,它要与Model层建立联系,将Model层转换成可以被View层识别的数据结构:其次也要同View建立联系,将数据及时更新到View层上,并且响应 ...
- 企业级任务调度框架Quartz(3) 一个简单的Quartz 例子
1. 一个简单的Quartz 工程 本示例应用比起众所周知的 System.out.println("Hello world from Quartz") 来还是要有趣些.当 ...
随机推荐
- maven的pom文件中指定编译的版本
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- 【Java入门提高篇】Java集合类详解(一)
今天来看看Java里的一个大家伙,那就是集合. 集合嘛,就跟它的名字那样,是一群人多势众的家伙,如果你学过高数,没错,就跟里面说的集合是一个概念,就是一堆对象的集合体.集合就是用来存放和管理其他类对象 ...
- 执行指定iframe页面的脚本
mark一下,通过jQuery执行指定iframe页面里面的脚本,当前仅知道页面名称. $(window.top.document).find('iframe[src="pagesrc&qu ...
- [ Java面试题 ]泛型篇
1.Java中的泛型是什么 ? 使用泛型的好处是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数. 好处: 1.类型安全,提供编译期间的类 ...
- sessionStorage的保存和获取
保存一组数组,需要转换为字符串格式: var arr = [1,2,3]; var str = JSON.stringify(arr); window.sessionStorage.setItem(' ...
- 常用JS对象的方法总结
String 方法 描述 charAt() 返回在指定位置的字符. charCodeAt() 返回在指定的位置的字符的 Unicode 编码. concat() 连接字符串. indexOf() 检索 ...
- Java面试题之对static的理解
1.静态变量 类型说明符是static.2.静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个 ...
- hibernate关系映射
多对一:比如多个订单对应同一个用户,需要在订单表中添加一个用户的属性 订单类: private Integer orderId; private Date createTime; private Us ...
- centos7系统日志时间与系统时间相差8小时
场景:当我们修改完系统时间的时区后,我们去查看我们的系统日志的时间发现时区还是在之前的系统时间时区. [root@vp-n ~]# ls -l /etc/localtime lrwxrwxrwx 1 ...
- 把封装脚本做成jar包
前提: eclipse, selenium, maven 把二次封装过的脚本做成jar包, 这样可以在新建工程里也调用封装过的方法. 实现步骤: 1. project 右键 => maven = ...