CMake实践--操作
---<Cmake 实践>---
---Ubuntu 14.04
1、创建一个cmake文件目录
mkdir -p ~/cmake
2、在cmake文件下创建t1子目录
cd ~/cmake
mkdir t1
cd t1
3、在t1子目录下创建main.c 和 CMakeLists.txt(注意:文件名大小写!)
touch main.c
touch CMakeListst.txt
其中,main.c文件内容如下:
打开main.c文件:
gedit main.c
//main.c #include<stdio.h>
int main()
{
printf("Hello World from t1 Main!\n");
return ;
}
其中,CMakeLists.txt内容如下:
gedit CMakeLists.txt
PROJECT(HELLO) #定义工程名称
SET(SRC_LIST main.c) #SET指令用于显式定义变量
MESSAGE(STATUS "This is BINARY dir" ${HELLO_BINARY_DIR}) #STATUS,输出前缀为-的信息
MESSAGE(STATUS "This is SOURCE dir" ${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST}) #工程生成一个文件名为hello的可执行文件
另外,CMakeLists.txt可简化为:
PROJECT(HELLO)
ADD_EXECUTABLE(hello ,main.c)
4、开始构建
当main.c文件及CMakeLists.txt文件创建完成后,进行构建工程,在该目录下运行:
cmake . (注意命令后面的点号,代表的是本目录)
运行cmake . 指令后,在目录下,可以看到有CMakeFiles、CMakeCache.txt、cmake_install.cmake等文件,并生成了Makefile。
之后,在该目录下输入:make 命令
这时候,目标文件hello已经构建完成,位于当前目录,运行下述指令:
./hello
得到输出: Hello World from t1 Main!
5、在cmake文件下创建t2目录
将t1工程下的main.c 与 CMakeLists.txt 拷贝到t2目录下
6、在目录t2下添加src文件夹
cd ~/cmake/t2
mkdir src
mv main.c src
7、在文件夹src下创建一个CMakeLists.txt,添加内容如下:
ADD_EXECUTABLE(hello main.c)
8、在t2目录下(原从t1中拷贝的)CMakeLists.txt修改为:
PROJECT(HELLO)
ADD_SUBDIRECTORY(src bin)
9、在t2文件路径下,进行编译:
cmake .
make
CMake实践--操作的更多相关文章
- 《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- 《CMake实践》笔记三:构建静态库(.a) 与 动态库(.so) 及 如何使用外部共享库和头文件
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- 《CMake实践》第三部分的示例代码的错误
<CMake实践>的第三章,初试cmake - cmake的helloworld 中的 PROJECT (HELLO) SET(SRC_LIST main.c) MESSAGE(statu ...
- kmeans算法原理以及实践操作(多种k值确定以及如何选取初始点方法)
kmeans一般在数据分析前期使用,选取适当的k,将数据聚类后,然后研究不同聚类下数据的特点. 算法原理: (1) 随机选取k个中心点: (2) 在第j次迭代中,对于每个样本点,选取最近的中心点,归为 ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX【转】
本文转载自:http://www.cnblogs.com/52php/p/5681751.html 四.更好一点的Hello World 没有最好,只有更好 从本小节开始,后面所有的构建我们都将采用 ...
- 《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE【转】
本文转载自:http://www.cnblogs.com/52php/p/5681745.html 前言: 开发了5,6年的时间,如果没有KDE4,也许不会有人或者Linux发行版本重视cmake,因 ...
- Cmake的介绍和使用 Cmake实践【转】
本文转载自:http://www.cppblog.com/Roger/archive/2011/11/17/160368.html Cmake的介绍和使用 Cmake实践 Cmake优点: 1. ...
- Cmake的介绍和使用 Cmake实践
Cmake的介绍和使用 Cmake实践http://www.cppblog.com/Roger/archive/2011/11/17/160368.html
随机推荐
- SQL中varchar和nvarchar有什么区别
varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输入数据的字节的实际长度,而不是 n 个字节. nvar ...
- 第一个javascript
系统:windows10 编辑器:NotePad++ 首先开启浏览器的javascript,我的是google浏览器,步骤:设置--高级设置--内容设置--选中“允许所有网站使用javascri ...
- 对poi-Excel导入的浅层理解
本文即将对POI方式导入excel文件最核心的步骤予以说明,为的是简单,也是为了阐明文件导入的原理. 文件导入有一个很明显的线索: 1.首先是我们知道硬盘中的文件,即:文件对象File file 2. ...
- Firefox不支持event解决方法
IE 中可以直接使用event 对象,而FF 中则不可以,解决方法之一如下: var theEvent = window.event || arguments.callee.caller.argume ...
- nodeJS安装及npm设置淘宝镜像
node.js安装 下载node.js安装包:https://nodejs.org/en/download/,下载相应版本的node.js. 需注意,在window中,node的安装目录中,最好不要有 ...
- sklearn.cross_validation 0.18版本废弃警告及解决方法
转载:cheneyshark 机器环境: scikit-learn==0.19.1 Python 2.7.13 train_test_split基本用法 在机器学习中,我们通常将原始数据按照比例分割为 ...
- [转载]领域驱动设计(Domain Driven Design)参考架构详解
摘要 本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces.Applications和Domain三层以及包含各类基础设施的Infrast ...
- NIO文件锁FileLock
目录 <linux文件锁flock> <NIO文件锁FileLock> <java程序怎么在一个电脑上只启动一次,只开一个进程> 文件锁可以是shared(共享锁) ...
- Web jsp开发学习——Servlet提交表单时用法
实现提交表单以后判断输入的信息是否符合条件 若符合条件 先新建servlet Sevlet的两种声明方式,二选一即可 再到web.xml里注册 register.jsp就是表单的界 ...
- Bisecting KMeans (二分K均值)算法讲解及实现
算法原理 由于传统的KMeans算法的聚类结果易受到初始聚类中心点选择的影响,因此在传统的KMeans算法的基础上进行算法改进,对初始中心点选取比较严格,各中心点的距离较远,这就避免了初始聚类中心会选 ...