VSCode和CMake实现C/C++开发

VSCode和CMake实现Ubuntu下C/C++开发总结

目录

  • 0.简介
  • 1.Linux系统介绍
  • 2.开发环境搭建
    • 2.1 编译器,调试器安装
    • 2.2 CMake安装
  • 3.GCC编译器
    • 3.1 编译过程
    • 3.2 g++重要编译参数
  • 4.g++编译实战
    • 4.0 编译前
    • 4.1 直接编译
    • 4.2 生成库文件并编译
    • 4.3 编译后
      • 4.3.1 编译完成后的目录结构
      • 4.3.2 运行可执行文件
  • 5.GDB调试器
    • 5.1 前言:
    • 5.2 GDB主要功能:
    • 5.3 常用调试命令参数
  • 6.IDE-VSCode
    • 6.1 插件
  • 7.CMake
    • 7.1 前言:
    • 7.2 语法
      • 7.2.1 基础语法
      • 7.2.2 重要指令和CMake常用变量
        • 7.2.2.1 重要指令
        • 7.2.2.2 常用变量
      • 7.2.3 CMake编译工程
      • 7.2.4 编译流程
  • 8.实践-使用VSCode进行完整项目开发
  • 附:

0.简介

1.Linux系统介绍

一切皆文件:创建、编辑、保存、关闭、重命名、删除、恢复(文件)

  • mkdir - make directories
    用法1:mkdir 路径 创建目录
    用法2:mkdir -p 路径 一次性创建多层不存在的目录 mkdir -p ~/a/b/c
    用法3:mkdir 路径1 [路径2] [路径3] 一次性创建多个目录 mkdir a b c

  • touch - change file timestamps
    创建新文件
    用法1:touch [路径]
    用法2:touch [路径1] [路径2]


【为什么创建新文件是touch】

  1. touch的作用本来不是创建文件,而是将指定文件的修改时间设置为当前时间。就是假装“碰”(touch)了一下这个文件,假装文件被“修改”了,于是文件的修改时间就是被设置为当前时间。
  2. 这带来了一个副作用,就是当touch一个不存在的文件的时候,它会创建这个文件。然后,由于touch已经可以完成创建文件的功能了,就不再需要一个单独的create了。

  • rm - remove files or directories
    作用:删除文件/目录
    用法1:rm [选项] 需要移除的文件路径
    用法2:rm [选项] 需要移除的目录

  • cp - copy files and directories
    作用:复制文件/文件夹到指定的位置
    用法1:cp [被复制的文件路径] [文件被复制到的路径]
    用法2:cp -r [被复制的文件夹路径] [文件夹被复制到的路径]*

  • mv - move (rename) files
    作用:移动文件到新的位置,或者重命名文件
    用法:mv [需要移动的文件路径] [需要保存的位置路径]

  • man - an interface to the system reference manuals
    作用:包含了Linux中全部命令手册,查看命令使用手册,按 q 退出

  • reboot - reboot the machine
    作用:重启linux系统

  • shutdown - power-off the machine
    作用:关机
    用法:shut -h [时间] shutdown -h now

2.开发环境搭建

2.1 编译器,调试器安装

  • 安装GCC,GDB
sudo apt update
# 通过以下命令安装编译器和调试器
sudo apt install build-essential gdb
  • 安装成功确认
# 以下命令确认每个软件是否安装成功
# 如果成功,则显示版本号
gcc --version
g++ --version
gdb --version

2.2 CMake安装

  • 安装cmake
# 通过以下命令安装编译器和调试器
sudo apt install cmake
  • 安装成功确认
# 确认是否安装成功
# 如果成功,则显示版本号
cmake --version

3.GCC编译器

1.GCC 编译器支持编译 Go、Objective-C,Objective-C ++,Fortran,Ada,D 和 BRIG(HSAIL)等程序;
2.Linux 开发C/C++ 一定要熟悉 GCC
3.VSCode是通过调用GCC编译器来实现C/C++的编译工作的

实际使用中
使用 gcc 指令编译 C 代码
使用 g++指令编译 C++ 代码

3.1 编译过程

预处理-Pre-Processing //.i文件
编译-Compiling // .s文件
汇编-Assembling // .o文件
链接-Linking // bin文件

# -E 选项指示编译器仅对输入文件进行预处理
g++  -E  test.cpp  -o  test.i    //.i文件

# -S 编译选项告诉 g++ 在为 C++ 代码产生了汇编语言文件后停止编译
#  g++ 产生的汇编语言文件的缺省扩展名是 .s
g++  -S  test.i  -o   test.s

# -c 选项告诉 g++ 仅把源代码编译为机器语言的目标代码
# 缺省时 g++ 建立的目标代码文件有一个 .o 的扩展名。
g++  -c  test.s  -o  test.o

# -o 编译选项来为将产生的可执行文件用指定的文件名
g++  te
上一篇:Dynamic Wallpaper for Mac:动态壁纸让桌面更生动


下一篇:如何用网页绘制一个黑莓9900的键盘效果图