离开linux已经一年了,很多命令开始忘记了,借助学习SLAM机会,再温习一下,补补C++功课,为日后无轨小车的自动行走打点基础。
安装命令:yum install gcc gcc-c++
注意安装时要先成为root用户
到/home/目录下创建文件夹,slambook,命令如下:
cd /home
mkdir slambook
创建文件夹helloSLAM
mkdir helloSLAM
cd helloSLAM
编写第一个程序:
vi helloSLAM.cpp
按住shift +insert编辑如下内容:
#include <iostream>
using namespace std;
int main(int argc,char** argv)
{
cout <<"Hello SLAM!“<<endl;
return 0;
}
按下esc,按shift+:,输入wq,保存该文件。
编译:
g++ helloSLAM.cpp
ls
此时发现目录底下多了一个a.out文件
执行:
./a.out
输出:Hello SLAM!
g++默认编译的名字是a.out.
以上命令适合于简单的C++工程,复杂的还是要好好学习一下,再也不能用VS点个按钮就结束了,牢记一行行命令是linux永恒的话题,天哪,脑细胞又要死掉不少。
OK,先安装cmake:
yum install cmake
提示安装版本,不认识,点yes,安装吧,成功就好。
不要退出helloSLAM文件夹,新建一个CMakeLists.txt
vi CMakeLists.txt
shift+insert 开始编辑,输入如下内容:
#声明要求的cmake最低版本
cmake_mininum_required(VERSION 2.8)
#声明一个cmake工程
project(HelloSLAM)
#添加一个可执行程序
add_executable(helloSLAM helloSLAM.cpp)
shift+: ,输入wq 保存
调用cmake .对工程进行分析,会输出一些编译信息,生成一些中间文件,我也看不懂,最重要的是MakeFile,咱也不会改,现在用make命令对工程进行编译:
make
此时生成可执行程序,helloSLAM
执行:./helloSLAM
输出:Hello SLAM!
但这样不够好,VS里面生成的时候会有个debug,release里面放着生成的一堆文件信息,明显与源程序分开,因此,下面的做法也同样可以建立一个清楚的结构:
新建Release文件夹,mkdir Release
cd Release
cmake ..
make
这样源文件在外层结构,而生成的中间文件都在Release里面。