cmake语法入门记录
2024-09-05 05:30:11
刚刚开始学习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!
最新文章
- git 常用指令
- Android 大牛的 blog 值得推荐 (转 整理)
- cocos2dx在ubuntu下配置声音引擎
- 《Java程序性能优化:让你的Java程序更快、更稳定》
- Android(java)学习笔记191:Android数据存储5种方式总结
- SVN中trunk,branches,tags用法详解
- C# 十进制和十六进制转换
- C# 将XML转换成DataSet【转】
- 加密传输SSL协议1_OpenSSL的安装
- des 加密 iOS
- HDU 2104 hide handkerchief
- for循环语句之求和,阶乘,求偶,求n次篮球蹦起高度
- CSS3 &; SVG 制作钟表
- hammer的初始化及移动端各种滑动
- HBase运维经验
- 《深入理解Java虚拟机》-----第4章 虚拟机性能监控与故障处理工具
- Ubuntu中安装python3.6(转)
- Atom编辑器中安装Emmet插件失败的问题
- ubuntu shell插件
- adb 架构