-
先克隆一份高翔的GitHub上的工程项目
安装git sudo apt-get install git 建立一个文件夹,把要克隆的项目放到该文件夹下 cd / mkdir gaoxiang_slambook cd gaoxiang_slambook 克隆项目 git clone https://github.com/jiajunhua/gaoxiang12-slambook
-
新建一个helloSLAM.cpp
在/slambook/ch2下创建一个helloSLAM.cpp cd / mkdir slambook cd /slambook mkdir ch2 cd ch2 sudo gedit helloSLAM.cpp #会直接创建好,并且打开编辑
-
通过g++将helloSLAM.cpp编译成可执行文件。
g++ helloSLAM.cpp #顺利则无任何输出 同时生成了一个a.out文件,并具有执行权限。 ./a.out #会输出helloSLAM.cpp的执行结果
-
cmake使用(帮解决代码的依赖关系)(如何在文档中输入中文暂未解决)
在slambook/ch2/中新建一个CMakeLists.txt文件,这个文件主告诉我们要对这个目录下的文件做什么 sudo gedit CMakeLists.txt cmake . #调用cmake对该工程进行分析,会生成MakeFile等中间文件 make #编译该工程 ./helloSLAM #执行在CMakeLists.txt中声明的可执行程序helloSLAM,会输出helloSLAM.CPP的执行结果 解析一下下图: 第一行是声明要求的cmake最低版本 project(HELLOSLAM)是声明一个cmake工程 add_executable( helloSLAM helloSLAM.cpp ) 是添加一个可执行程序,(程序名 源代码文件)
-
cmake将生成的中间文件统一放到build文件夹中(便于以后发布时,删除这些中间文件)
在此操作前,先删除之前产生的所有中间文件,不然你分析这个工程时,它会检测到已经有这个Makefile文件,而不会再重新生成一个新的Makefile文件到build文件夹里了mkdir build cd build cmake .. #两个点点是指对上一层文件夹,即代码所在文件夹进行编译 make
-
删除文件夹
-r 强制删除
-f 不提示rm 可以理解成remove sudo rm -r 文件夹名 #表示强制删除并提示 sudo rm -rf 文件夹名 #表示强制删除不提示
-
返回前面的目录
cd - (cd 减号) 返回上次访问的目录 cd .. 返回上一级目录 cd ~ 返回home目录
-
cmake生成库(带main函数的文件才能生成可执行程序,其他会打包成一个库)
静态库每次被调用都会生成一个副本,而共享库则只有一个副本,更省空间生成静态库语句 .a作为后缀名 add_library(hello libHelloSLAM.cpp) #把文件编译生成一个叫做“hello”的库,文件名libhello.a 生成共享库语句 .so作为后缀名 add_library(hello_shared SHARED libHelloSLAM.cpp) #得到文件libhello_shared.so
头文件是说明这个库里面提供了哪些方法,只要拿到头文件和库文件,就能调用该库。
编写libhello的头文件 #ifndef LIBHELLOSLAM_H_ #define LIBHELLOSLAM_H_ void printHello(); #endif
Ubuntu下克隆git项目和cmake的基本功能使用
最新推荐文章于 2024-07-26 17:08:09 发布