Ubuntu上VScode编译c++基础学习指南-SurfaceFlinger实战必备基础知识

66 阅读2分钟

背景

hi,粉丝们: 大家好!上一篇分享了c++新语法future,promise,async相关的知识后,学员朋友们关注到使用是VScode进行的编译运行。而不是以前的gcc或者g++这种较为原始命令行进行编译的。 这里可以看一下常见c++开发方式: 在这里插入图片描述

简单说开发c++可以有2种方式:

1、使用vi、gedit等代码编辑工具进行编辑,然后使用命令gcc或者Makefile等进行编译,即编写代码和编译是分开的,一般编写代码也没啥代码错误提示等,只有命令编译时候才可以发现错误,这种方式相对来说适合少量修改代码,不适合大量写代码的情况

2、使用专业ide工具进行编写,这里Ubuntu上的c++ ide工具其实也不少,比如最常见的vscode,还有eclipse,clion等。这里重点介绍vscode,有ide工具相对编写代码和编译代码都非常方便

VScode工具编写c++代码步骤

(注意:VScode需要安好几个c++插件,这个前面课程有讲解,可以正常跳转aosp下的c++代码就说明没啥问题) 1、创建一个工程文件夹 hellowork_demo

test@test:~/demos$ mkdir helloworld_demo

2.打开文件夹helloworld_demo 在这里插入图片描述 3、点击创建具体cpp文件,并且编写如下代码

在这里插入图片描述

#include<iostream>
using namespace std;
int main() {
    cout<<"hello framework"<<endl;
    return 0;
}

4、启动编译 注意这个收光标放到cpp文件,然后按下F5按键进行编译调试 弹出如下: 在这里插入图片描述 选着第一个GDB既可以,选着后又弹出如下 在这里插入图片描述选第一个g++-生成和调试活动文件,最后编译成功会自己执行结果如下: 在这里插入图片描述

5、断点调试等技巧 在这里插入图片描述 需要在代码左边进行断点,然后点击执行就会正常执行到断点,debug可以通过如下这个操作栏进行调试: 在这里插入图片描述

6、编译额外引入一下库 比如最常见的编译时候会引入pthread库,这个命令行编译只需要加一个-lpthread既可以,同样vscode也是需要配置的,配置方式: 修改tasks.json 在这里插入图片描述 然后args加入-lpthread 在这里插入图片描述

c++常见一些新语法库函数手册

aosp相关native模块,比如input,SurfaceFlinger等,经常阅读会遇到一些陌生库函数或者类,可能这个时候想要查询这个库函数相关的详情进行学习,类似课程讲解linux库函数有个man手册一样东西。 这里我推荐一个网站给大家学习c++相关的库函数等。

legacy.cplusplus.com/ 在这里插入图片描述 需要搜索任何东西都可以到这个进行search 比如这里search一下future相关: 在这里插入图片描述

本文章对应视频手把手教你学framework: hal+perfetto+surfaceflinger mp.weixin.qq.com/s/LbVLnu1ud… 在这里插入图片描述

私聊作者+v(androidframework007)

七件套专题:在这里插入图片描述 点击这里 mp.weixin.qq.com/s/Qv8zjgQ0C…

视频:www.bilibili.com/video/BV1wc…