一、利用LInux命令编写一个c++程序
- ls:查看列表
- touch:创建文件
- vim:编辑文件
- 想要退出vim时,先按Esc,然后直接输入“ : ”就会在最下面显示出一行,vim开始进入命令模式(而不是write模式)参考这篇博客
- gedit:打开文件
- g++/gcc xxx.cpp:编译xxx.cpp文件,生成一个a.out
- g++/gcc xxx.cpp -o yyy:编译xxx.cpp文件,生成一个yyy.out
- ./a.out:执行a.out编译文件
其他命令参考这篇博客
二、使用CMakeLists.txt
通过gedit CMakeLists.txt命令构建一个CMakeLists.txt文件,如下:
# 1.声明cmake最低版本
cmake_minimum_required(VERSION 2.8)
# 2.声明一个cmake工程
project(HelloWorld)
# 3.添加一个可执行程序 程序名 源代码文件
add_executable(helloWorld main.cpp)
终端输入如下:创建一个build文件夹用来存储cmake编译产生的文件
mkdir build
cd build
cmake ..
make
./helloworld
三、自定义库文件
- 编写一个libHelloSLAM.cpp的库文件
//这是一个库文件
#include <iostream>
using namespace std;
void printHello() {
cout << "Hello SLAM" << endl;
}
- 头文件libHelloSLAM.h
#ifndef LIBHELLOSLAM_H_
#define LIBHELLOSLAM_H_
// 上面的宏定义是为了防止重复引用这个头文件而引起的重定义错误
// 打印一句hello的函数
void printHello();
#endif
- 在useHello.cpp使用你自定义的库函数:
#include "libHelloSLAM.h"
// 使用 libHelloSLAM.h 中的 printHello() 函数
int main(int argc, char **argv) {
printHello();
return 0;
}
- 在CMakeLists.txt文件编辑
# 1.声明要求的 cmake 最低版本
cmake_minimum_required(VERSION 2.8)
# 2.声明一个 cmake 工程
project(HelloSLAM)
# 3.设置编译模式
set(CMAKE_BUILD_TYPE "Debug")
# 4.添加hello库(静态库):每次被调用就会生成一个副本,后缀名.a
add_library(hello libHelloSLAM.cpp)
# 共享库:只有一个副本,,后缀名.so
add_library(hello_shared SHARED libHelloSLAM.cpp)
# 5.添加可执行程序调用hello库中函数
add_executable(useHello useHello.cpp)
# 6.将库文件(共享库)链接到可执行程序上
target_link_libraries(useHello hello_shared)