cmake语法入门记录
刚刚开始学习ROS,打算入机器人的坑了,参考教材是《ROS及其人开发实践》胡春旭编著 机械工业出版社 华章科技出品。本来以为可以按照书上的步骤一步步来,但是,too young to simple啊,程序员的苦逼日子开始了,特地记录如下。
在学习ROS的helloworld程序时,发现,ROS中居然使用cmake编译,头大,一不做二不休,看书练习。记录如下,环境kubuntu 18.04系统,最新升级的,目录/home/municationk/WORKM/cmake/t1
两个文件main.c
#include <stdio.h> int main(int argc, char **argv)
{
printf("Hello world!\n"); return ;
}
CMakeList.txt文件:
PROJECT (HELLO)
SET(SRC_LIST main.c)
MESSAGE(STATUS "This is BINARY dir" ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir" ${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})
代码说明:行号是为了更容易说明代码,实际输入时是不需要的,也不能要
简单的hello代码,这个复杂,只是为了说明复杂的问题,为了不被代码的复杂性所干扰,因此才这么做。
有了代码:执行命令:千万不要漏掉了后面的".",表示在当前目录下执行cmake命令
cmake .
执行后,在当前目录/home/municationk/WORKM/cmake/t1中生成:
-rw-rw-r-- municationk municationk 8月 : CMakeCache.txt
drwxrwxr-x municationk municationk 8月 : CMakeFiles
-rw-rw-r-- municationk municationk 8月 : cmake_install.cmake
-rw-rw-r-- municationk municationk 8月 : CMakeLists.txt
-rw-rw-r-- municationk municationk 8月 : main.c
-rw-rw-r-- municationk municationk 8月 : Makefile
其他的文件都可以不用关心,生成了Makefile文件,有了它就可以make了,
接着继续执行命令:
make
municationk@developk:~/WORKM/cmake/t1$ make
-- This is BINARY dir/home/municationk/WORKM/cmake/t1
-- This is SOURCE dir/home/municationk/WORKM/cmake/t1
-- Configuring done
-- Generating done
-- Build files have been written to: /home/municationk/WORKM/cmake/t1
[%] Built target hello
信息如上,没有错误到达100%就对了,此时目录/home/municationk/WORKM/cmake/t1中生成:
-rw-rw-r-- municationk municationk 8月 : CMakeCache.txt
drwxrwxr-x municationk municationk 8月 : CMakeFiles
-rw-rw-r-- municationk municationk 8月 : cmake_install.cmake
-rw-rw-r-- municationk municationk 8月 : CMakeLists.txt
-rwxrwxr-x municationk municationk 8月 : hello
-rw-rw-r-- municationk municationk 8月 : main.c
-rw-rw-r-- municationk municationk 8月 : Makefile
最后执行命令:结果就出来了。
.hello
municationk@developk:~/WORKM/cmake/t1$ ./hello
Hello world!
cmake语法入门记录的更多相关文章
- CMake快速入门教程-实战
http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/ http://blog.csdn.net/dbzhang800/article/detai ...
- 转:CMake快速入门教程-实战
CMake快速入门教程:实战 收藏人:londonKu 2012-05-07 | 阅:10128 转:34 | 来源 | 分享 0. 前言一个多月 ...
- CMake语法—内置变量
目录 CMake语法-内置变量 1 CMake变量分类 1.1 普通变量 1.2 缓存变量 1.3 环境变量 1.4 内置变量 2 CMake内置变量分类 2.1 提供信息的变量 2.2 改变行为的变 ...
- CMake语法—缓存变量(Cache Variable)
目录 CMake语法-缓存变量(Cache Variable) 1 CMake缓存变量 2 定义缓存变量 2.1 定义格式 2.2 定义示例代码 2.3 运行结果 2.4 小结 3 CMakeCach ...
- 续关于C#的微信开发的入门记录一
前几天写了一篇博客<关于C#的微信开发的入门记录一>,原文地址:http://www.cnblogs.com/zhankui/p/4515905.html,现在继续完善: 目前很多小伙伴都 ...
- [独孤九剑]持续集成实践(二)– MSBuild语法入门
本系列文章包含: [独孤九剑]持续集成实践(一)- 引子 [独孤九剑]持续集成实践(二)– MSBuild语法入门 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBu ...
- CMake快速入门教程:实战
转自http://blog.csdn.net/ljt20061908/article/details/11736713 0. 前言 一个多月前,由于工程项目的需要,匆匆的学习了一下cmake的使 ...
- Java基础语法入门01
Java基础语法入门01 学习java你要先进行去了解JDK,JRE,JVM JDK Java开发工具包 JRE Java语言开发的运行环境 JVM Java虚拟机,用于Java语言的跨平台所用. 当 ...
- 【转】.MD语法入门
@2019-02-13 [小记] .MD语法入门
随机推荐
- Entity Framewrok Migration 重置
转载自:https://weblog.west-wind.com/posts/2016/jan/13/resetting-entity-framework-migrations-to-a-clean- ...
- Java Web 深入分析(5) Java ClassLoader 工作机制
Classloader 有3个作用 将class加载到JVM中去 审查每个类由谁去加载,是一种父优先的等级加载 把Class字节码统一编译成JVM统一要求的对象格式 ClassLoader的等级加载机 ...
- Bat 批处理启动和停止Oracle 服务
实际情况 * 不想开机自启动oracle服务,因为Windows 没有固态硬盘本身启动就很慢了,然后也不想自己手动的方式去启东oracle 服务 解决方案 *1启动 ``` @echo off ech ...
- ASP.NET WEB应用程序(.network4.5)MVC Razor视图引擎2 视图模板页
https://www.cnblogs.com/xlhblogs/archive/2013/06/09/3129449.html MVC Razor模板引擎 @RenderBody.@RenderPa ...
- ubuntu16.04安装zabbix-server3.4
一.安装前环境准备 部署zabbix需要安装apache,mysql和php sudo apt-get install apache2 sudo apt-get install mysql-serve ...
- 案例:selenium实现登录百度(如有验证码,需要手动输入)
func.py https://www.cnblogs.com/andy9468/p/10899508.html baidu_login.py中(如有验证码,需要手动输入) # 导入webdriver ...
- html5+css3 background-clip 技巧
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- trape 一种识别工具
trape是一种识别工具,可以让你跟踪任何人,你可以得到的信息非常详细.通过去识别现有的网站所登录的用户,来追踪一个人的虚拟身份 如何使用它首先卸载工具.git clone https://githu ...
- Flutter——CircleAvatar组件(圆形头像组件)
import 'package:flutter/material.dart'; import 'res/listData.dart'; void main() { runApp(MaterialApp ...
- Scrapy 中常用的中间件和管道组件
Pipeline用法 储存到MongoDB pipline.py中的代码 import pymongo class MongoPipeline(object): def __init__(self, ...