刚刚开始学习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!

最新文章

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

热门文章

  1. 双重检查加锁机制(并发insert情况下数据重复插入问题的解决方案)
  2. vue 集成 NEditor 富文本
  3. LeetCode:626.换座位
  4. C++ DLL debug版本在其他PC上缺少依赖的处理方式
  5. mimikatz记录
  6. web服务器端挖矿代码攻击的错误检测及排除
  7. [转]Spring Security Oauth2 认证流程
  8. IntelliJ IDEA控制台启动Tomcat输出中文乱码问题
  9. WebApplication 启动类一定要存于某个包下
  10. Ubuntu系统---中英文问题小记