android手机助手源代码,IOS Android 手机助手原理以及源码(cmake 构建)
要在不同平台上构建不同的工程需要使用到构建工具,很多开源项目都是用的makefile,但是这东西并不怎么适合国人的习惯,我喜欢双击工程文件自动打开xcode或者vs2013.然后再开发工具里面写代码。编译,链接,单步调试等。所以我不打算用makefile,而是用cmake 来构建。
这里简单描述一下cmake 是干什么的。cmake 是一个工具,一个可执行程序。 他需要一个名字为"CMakeLists.txt" 文件来配合。就和make 工具需要makefile 文件一样。假如下载了一个开源代码,如果发现目录下有 "CMakeLists.txt" 文件,那就爽了。可以直接生成vs工程或者xcode工程。我这里说一下我的设计。
1) 一个总的CMakeLists.txt。 这个文件用来定义所有的工程。可以想象成这是一个解决方案。解决方案里面会包含很多的子工程。
#XPhone_Plus 解决方案的名称
project(XPhone_Plus)
#需要的cmake 版本号
cmake_minimum_required(VERSION 2.8)
#cmake 的路径
SET (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/build/CMakeModules/;${CMAKE_MODULE_PATH}")
#子工程生成的一些路径。比如lib 文件生成在哪个目录。bin 生成的目录等
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../bin)
# 这个包含了一些全局设置,比如说工程要生成的编译选项,要生成哪几种的工程等。globalsetting 是一个自己写的文件,但是里面#的内容基本通用。
INCLUDE (globalsetting)
#下面就是这个解决方案的子工程了
add_subdirectory(src/Common)
add_subdirectory(src/XPhonePlus)
add_subdirectory(src/Test)
2) 每个工程一个CMakeLists.txt。
工程中有目录结构,还有需要编译的文件列表,以及宏定义等等,这些就需要每个工程自己来定义了,所以一个工程里面放一个CMakeLists.txt 还是比较合理的。
#cryptopp工程名
project (cryptopp)
#根据不同的平台定义一些宏定义
if (WIN32)
#-DUSE_PRECOMPILED_HEADERS 说明一下:-D 是一个前缀,真正的宏定义是后面 USE_PRECOMPILED_HEADERS
ADD_DEFINITIONS(-DUSE_PRECOMPILED_HEADERS)
if (CMAKE_X64)
ADD_DEFINITIONS(-DCRYPTOPP_DISABLE_ASM)
endif(CMAKE_X64)
elseif(APPLE)
#多个宏定义之间用空格隔开,比如下面USE_PRECOMPILED_HEADERSCRYPTOPP_DISABLE_ASM 隔开了
ADD_DEFINITIONS(-DUSE_PRECOMPILED_HEADERS -DCRYPTOPP_DISABLE_ASM)
endif (WIN32)
INCLUDE_DIRECTORIES (${COMMON_INCLUDE} . ..)
#下面就是文件列表了
FILE (GLOB header_files *.h)
FILE (GLOB source_files *.c *.cpp)
#ADD_LIBRARY表示生成一个静态库。 ADD_EXECUTABLE 表示生成一个exe 文件
ADD_LIBRARY (cryptopp ${header_files} ${source_files})
所以使用cmake 来构建是非常方便的。无论是mac osx 还是windows 都很方便
第一步算是完成了。
android手机助手源代码,IOS Android 手机助手原理以及源码(cmake 构建)相关推荐
- Android开发从入门到精通教程大总结(源码,教程,面试题,书籍,视频)
老罗: http://blog.csdn.net/column/details/androidluo.html http://xiaozu.renren.com/xiaozu/100692/3569 ...
- android视频缓存框架 [AndroidVideoCache](https://github.com/danikula/AndroidVideoCache) 源码解析与评估
文章目录 android视频缓存框架 [AndroidVideoCache](https://github.com/danikula/AndroidVideoCache) 源码解析与评估 引言 使用方 ...
- 安卓航班Android开发经典教程大总结1----基础编程及源码推送
上篇主要讲述了社区的总体规划以及总结此次教程的目的,接下来开始正式总结android开发相关知识,从最简单的环境搭建到正式项目的制作,当然教程是总结来的,同时再次声明资料很多来自互联网,如有侵权请联系 ...
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
<div id="container"> <div id="header"> <div class=&qu ...
- Android Handler中的handleMessage方法和post方法之源码剖析
我们都知道,在子线程中进行UI操作(更新UI控件)包括以下四种方法: 1.Handler的handlerMessage()方法. 2.Handler的post()方法. 3.View的post()方法 ...
- 【转】Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153761 记得在前面的文章中,我带大家一起从源码的角度分析了Android中Vi ...
- Android AOSP基础(五)不会调试系统源码,还搞什么Android?
本文首发于微信公众号「刘望舒」 关联系列 Android AOSP基础系列 Android系统启动系列 应用进程启动系列 Android深入四大组件系列 Android深入理解Context系列 An ...
- Android音频实时传输与播放(四):源码下载(问题更新)【转】
Android音频实时传输与播放(四):源码下载(问题更新) 激动人心的时刻到了有木有 ^_^ 服务端下载请点击这里,客户端下载请点击这里! 最近有朋友在下载源码使用之后,说播放出来的声音噪声很大.其 ...
- Android 系统(177)---Android消息机制分析:Handler、Looper、MessageQueue源码分析
Android消息机制分析:Handler.Looper.MessageQueue源码分析 1.前言 关于Handler消息机制的博客实际上是非常多的了. 之前也是看别人的博客过来的,但是过了一段时间 ...
最新文章
- ASP.NET 2.0 ajax中gridView的刷新问题!
- 微信自定义内置返回事件
- 参与组织社区活动总结
- 【POJ 3273】 Monthly Expense (二分)
- auto_ptr使用介绍
- 我写的第一个CodeSmith模板(添加修改数据页面)
- 股票市值管理什么意思?
- python逐行读取txt文件-在python 3.4上逐行读取文本文件
- 毕业设计论文封面模板
- linux命令:常用shell命令及应用
- 抽离css以及公共js
- 瑞友杯虚拟化征文---瑞友天翼应用虚拟化之实战演示
- 为什么要读“无用”的古文
- 计算机专业英语教程ppt,计算机专业英语教程课件.ppt
- python爬虫视频教程
- java基础周报_java第四周周报
- matlab 精品课程,同济大学经济与管理学院精品课程
- VMWare 设置CentOS虚拟机固定IP地址
- 你选择双休还是单休?
- 梯度下降原理(SGD,Adam,BGD,momentum,Adagrad,NAG)