cmake

gcc main.app
g++ main.App
在这里插入图片描述

touch CMakeList.txt
vim CMakeList.txt

cmake还可以直接在当前目录进行编译,无须建立build目录。但是,这种做法会将所有生成的中间文件和源代码混在一起,而且cmake生成的makefile无法跟踪所有的中间文件,即无法使用”make distclean”命令将所有的中间文件删除。因此,我们推荐建立build目录进行编译,所有的中间文件都会生成在build目录下,需要删除时直接清空该目录即可。

//CMakeList.txt
project (helloSlam)

add_executable(sayHello main.app)
lvan@lvan-VirtualBox:~/shenlan$ mkdir build
lvan@lvan-VirtualBox:~/shenlan$ cd build
lvan@lvan-VirtualBox:~/shenlan/build$ cmake ..//解析上层文件
lvan@lvan-VirtualBox:~/shenlan/build$ make //编译
lvan@lvan-VirtualBox:~/shenlan/build$ ./sayHello   //调用sayHello输出Hello Slam
Hello Slam 

在这里插入图片描述

建立库函数

lvan@lvan-VirtualBox:~/shenlan$ mkdir include src
lvan@lvan-VirtualBox:~/shenlan$ touch include/Hello.h src/Hello.cpp
lvan@lvan-VirtualBox:~/shenlan$ vim include/Hello.h 
lvan@lvan-VirtualBox:~/shenlan$ vim src/Hello.cpp
lvan@lvan-VirtualBox:~/shenlan$ vim main.cpp
lvan@lvan-VirtualBox:~/shenlan$ vim CMakeList.txt

在这里插入图片描述
1、头文件 函数的声明
在这里插入图片描述

// include/Hello.h
#pragma once


void SayHello();
~            

2、源文件 函数的定义
在这里插入图片描述

// src/Hello.cpp
include "Hello.h"
include <iostream>

using namespace std;

void SayHello(){
        cout<<"Hello,SLAM!"<<endl;
}

3、执行文件(main.cpp) 调用函数
在这里插入图片描述

// main.cpp
#include "Hello.h"

using namespace std;

int main( int argc, char** argv ){
        SayHello();
        return 0;
}

4、CMakeList.txt
add_library 生成库文件,编译的结果是libhello
tar:连接,sayHello 调用libHello
include_directories:指明include文件是指定头文件的地方
在这里插入图片描述

# 声明要求的 cmake 最低版本
cmake_minimum_required(VERSION 2.8)
# 声明一个 cmake 工程
project(HelloSLAM)
# 设置编译模式
set(CMAKE_BUILD_TYPE "Debug")

include_directories("include")

add_library( libHello src/Hello.cpp)

add_executable(SayHello main.cpp)

target_link_libraries( SayHello libHello)

然后在build中编译

/build: cmake ..
/build: make
/build: ./SayHello

(1) 另一个程序可能也在编辑同一个文件。
如果是这样,修改时请注意避免同一个文件产生两个不同的版本。

退出,或小心地继续。

(2) 上次编辑此文件时崩溃。
如果是这样,请用 “:recover” 或 “vim -r nginx.conf”
恢复修改的内容 (请见 “:help recovery”)。
如果你已经进行了恢复,请删除交换文件 “.nginx.conf.swp”
以避免再看到此消息。

交换文件 “.nginx.conf.swp” 已存在!

原因如下:

在用vim打开一个文件时,其会产生一个cmd.swap文件,用于保存数据,当文件非正常关闭时,可用此文件来恢复,当正常关闭时,此文件会被删除,非正常关闭时,不会被删除,所以提示存在.swap文件。

解决方法如下:

方法2、ls -a 查询隐藏文件

将后缀名为.swp的文件删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值