视频1
- mkdir Code
- cd Code/
- git clone https://github.com/gaoxiang12/slambook
- mkdir learn-slam
- cd learn-slam
- mkdir ch2
- cd ch2
- touch main.cpp
编辑main.cpp
- vim main.cpp
- gedit main.cpp
- g++ main.cpp
会生成一个a.out文件 - ./a.out
查看a.out内容 - g++ main.cpp -o helloSLAM
会生成一个helloSLAM文件 - ./helloSLAM
查看内容 - touch CMakeLists.txt
- vim CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(helloSLAM)
add_executable(helloslam main.cpp)
-
rm a.out helloSLAM
-
cmake .
-
make
进行make编译,生成了一系列文件 -
./helloSLAM
-
rm -rf CMakeCache.txt CMakeFiles cmake_install.cmake Makefile
-
mkdir build
-
cd build/
-
cmake …
-
cd …
返回ch2文件夹 -
rm helloslam
-
cd build/
-
cmake …
-
./helloslam
这里相当于把ch2里的程序,可以在自己的目标文件夹下进行编译生成
这样使得上层文件夹是没有编译生成文件的,比较干净 -
vim hello.cpp
#include <iostream>
using namespace sts;
void printHello(){
cout<<"Hello SLAM"<<endl;
}
- vim CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(helloSLAM)
add_executable(helloslam main.cpp)
add_library(hello hello.app)
-
cd build/
-
cmake …
-
make
这时候发现,生成了一个额外的文件libhello.a
但这个文件打不开 -
cd …
-
vim hello.h
#pragma once
void printHello();
添加一个头文件
- less hello.cpp
查看文件
再次编译
- cd build/
- cmake …
- make
添加对头文件的调用
- cd …
- vim useHello.cpp
#include "hello.h"
int main(){
printHello();
return 0;
}
在CMakeLists.txt中声明调用
- vim CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(helloSLAM)
add_executable(helloslam main.cpp)
add_library(hello hello.cpp)
add_executable(useHello useHello.cpp)
target_link_libraries(useHello hello)
再次编译
- cd build/
- cmake …
- make
这里生成了一个useHello的文件
就是通过引用生成的
安装kdevelop
- sudo apt-get install kdevelop
然后是一串 kdevelop的使用操作,我没学……