青岛小型网站建设,最近新闻热点事件,在淘宝上开网店的详细步骤,wordpress返回上一个页面文章目录 一 关系二 gcc2.1 编译过程2.2 编译参数2.3 静态库和动态库1 后缀名2 联系与区别 2.4 GDB 调试器1 常用命令 三 make、makefile四 cmake、cmakelist4.1 语法特性4.2 重要命令4.2 重要变量4.3 编译流程4.4 两种构建方式 五 Vscode5.0 常用快捷键5.1 界面5.2 插件5.3 .v… 文章目录 一 关系二 gcc2.1 编译过程2.2 编译参数2.3 静态库和动态库1 后缀名2 联系与区别 2.4 GDB 调试器1 常用命令 三 make、makefile四 cmake、cmakelist4.1 语法特性4.2 重要命令4.2 重要变量4.3 编译流程4.4 两种构建方式 五 Vscode5.0 常用快捷键5.1 界面5.2 插件5.3 .vscode 文件夹1 launch.json2 task.json 一 关系
1 gcc是一种编译器。将源代码转为可执行文件。
当你的程序只有一个源文件时直接就可以用gcc命令编译它。但当你的程序包含很多个源文件时用gcc命令逐个去编译时你就很容易混乱而且工作量大所以出现了make工具。
2 make是一个批处理工具。在整个项目中管理编译过程。其依据是makefile文件。
3 makefile是一个文本文件用于指挥make。其中包含一系列规则和命令。make 工具通过读取 makefile 中的规则来确定需要重新编译哪些文件以及执行哪些命令来完成编译过程。
makefile在一些简单的工程完全可以用人工手写但是当工程非常大的时候手写makefile也是非常麻烦的并且如果换了个平台makefile又要重新修改。这时候就出现了Cmake工具。
4 cmake是一个跨平台构建工具。cmake可以更加简单的生成makefile文件给make用。
5 cmakelist是一个文本文件用于指挥cmake。 参考网址http://t.csdn.cn/iNMcN 二 gcc
安装
sudo apt update
sudo apt install build-essential gdb2.1 编译过程
预处理 -E .i 展开宏编译 -S .s c-汇编汇编 -c .o 汇编-二进制链接 -o bin文件 2.2 编译参数
1 -g 带调试信息
2 -O2 优化源代码
3 -l -L 指定库文件 | 指定库文件路径
4 -I 指定头文件搜索目录
5 -Wall 打印警告信息
6 -w 关闭警告信息
7 -stdc11 设置编译标准
8 -o 指定输出文件名
9 -D 定义宏 2.3 静态库和动态库
1 后缀名
静态库后缀名.a动态库后缀名.so
2 联系与区别
静态库在编译时被链接到目标程序中成为程序的一部分。优点是可执行文件运行时不依赖外部库。缺点是文件较大。动态库不会被复制到最终的可执行文件中节省内存兼容性问题。
2.4 GDB 调试器 安装 sudo apt update
sudo apt install build-essential gdb编译时需要带-g gcc -g main.c -o main
1 常用命令 三 make、makefile
四 cmake、cmakelist
4.1 语法特性 4.2 重要命令
# CMake最小版本要求为2.8.3
cmake_minimum_required(VERSION 2.8.3)# 指定工程名为HELLOWORLD
project(HELLOWORLD)# 定义SRC变量其值为sayhello.cpp hello.cpp
set(SRC sayhello.cpp hello.cpp)# 将/usr/include/myincludefolder 和 ./include 添加到头文件搜索路径
include_directories(/usr/include/myincludefolder ./include)# 将/usr/lib/mylibfolder 和 ./lib 添加到库文件搜索路径
link_directories(/usr/lib/mylibfolder ./lib)# 通过变量 SRC 生成 libhello.so 共享库
add_library(hello SHARED ${SRC})# 添加编译参数 -Wall -stdc11 -O2
add_compile_options(-Wall -stdc11 -O2)# 编译main.cpp生成可执行文件main
add_executable(main main.cpp)# 将hello动态库文件链接到可执行文件main
target_link_libraries(main hello)# 添加src子目录src中需有一个CMakeLists.txt
add_subdirectory(src)# 定义SRC变量其值为当前目录下所有的源代码文件
aux_source_directory(. SRC)# 编译SRC变量所代表的源代码文件生成main可执行文件
add_executable(main ${SRC})4.2 重要变量 4.3 编译流程
1 编写CMakeLists.txt2 执行命令cmake 路径生成makefile3 执行命令make
4.4 两种构建方式 五 Vscode
5.0 常用快捷键
快捷键功能行注释ctrl/块注释ctrlshiftA移动当前行alt上/下命令面板ctrlshiftp转到文件ctrlp转到行ctrlg打开终端ctrl~变量重命名F2打开/关闭侧边栏ctrlB编辑器拆分ctrl\缩略图菜单栏查看/外观代码缩进ctrl[/]代码格式化ctrlshiftI在下方插入一行ctrlenter移到定义处F12编辑区放大缩小ctrl -/
5.1 界面
四大区菜单栏、侧边栏、编辑区、状态栏 5.2 插件 5.3 .vscode 文件夹
1 launch.json
2 task.json