Directorio de artículos
una relación
1 gcc
es un compilador . Convierte el código fuente en archivos ejecutables.
Cuando su programa tiene solo un archivo fuente, puede usar directamente el comando gcc para compilarlo. Pero cuando su programa contiene muchos archivos fuente y usa el comando gcc para compilarlos uno por uno, se confundirá fácilmente y tendrá una gran carga de trabajo, por lo que apareció la herramienta make.
2 make
es una herramienta de procesamiento por lotes . Gestionar el proceso de compilación durante todo el proyecto. Se basa en el archivo MAKE.
3 makefile
es un archivo de texto utilizado para ordenar make . Contiene una serie de reglas y comandos. La herramienta make lee las reglas en el archivo make para determinar qué archivos deben volver a compilarse y qué comandos ejecutar para completar el proceso de compilación.
El archivo MAKE se puede escribir a mano en algunos proyectos simples, pero cuando el proyecto es muy grande, escribir el archivo MAKE a mano también es muy problemático y, si se cambia la plataforma, el archivo MAKE deberá modificarse nuevamente. En este momento apareció la herramienta Cmake.
4 cmake
es una herramienta de construcción multiplataforma . cmake puede generar archivos MAKE más fácilmente para que make los utilice.
5 cmakelist
es un archivo de texto utilizado para ordenar cmake .
URL de referencia: http://t.csdn.cn/iNMcN
2 gcc
Instalación :
sudo apt update
sudo apt install build-essential gdb
2.1 Proceso de compilación
- Macro de expansión Preprocesamiento-E .i
- Compilar -S .s c->Ensamblar
- Ensamblaje-c .o Ensamblaje->Binario
- enlace -o archivo bin
2.2 Parámetros de compilación
1 -g con información de depuración
2 -O2 optimiza el código fuente
3 -l -L especifica el archivo de la biblioteca | especifica la ruta del archivo de la biblioteca
4 -Especifico el directorio de búsqueda del archivo de encabezado
5 -La pared imprime mensajes de advertencia
6 -w desactiva los mensajes de advertencia
7 -std=c++11 Establecer estándar de compilación
8 -o especifica el nombre del archivo de salida
9 -D define macro
2.3 Bibliotecas estáticas y bibliotecas dinámicas
1 sufijo
- Nombre del sufijo de la biblioteca estática:
.a
- Nombre del sufijo de la biblioteca dinámica:
.so
2 conexiones y diferencias
- Las bibliotecas estáticas se vinculan al programa de destino durante la compilación y pasan a formar parte del programa. La ventaja es que el archivo ejecutable no depende de bibliotecas externas cuando se ejecuta. La desventaja es que el tamaño del archivo es mayor.
- La biblioteca dinámica no se copiará al archivo ejecutable final, lo que ahorra memoria y genera problemas de compatibilidad.
2.4 Depurador BGF
-
Instalar
sudo apt update sudo apt install build-essential gdb
-
Necesita compilar con -g
gcc -g principal.c -o principal
1 comandos de uso común
三 crear, crear archivo
Cuatro cmake, cmakelist
4.1 Características gramaticales
4.2 Comandos importantes
# 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 -std=c++11 -O2
add_compile_options(-Wall -std=c++11 -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 Variables importantes
4.3 Proceso de compilación
- 1 Escriba CMakeLists.txt
- 2 Ejecute el comando: ruta cmake para generar el archivo MAKE
- 3 Ejecutar comando: hacer
4.4 Dos métodos de construcción
CincoVscode
5.0 Teclas de acceso directo de uso común
tecla de acceso directo | Función |
---|---|
Comentarios de línea | Ctrl+/ |
bloquear comentarios | Ctrl+Mayús+A |
Mover fila actual | Alt+arriba/abajo |
panel de comando | Ctrl+Mayús+P |
Ir al archivo | control+p |
ir a la fila | control+g |
Terminal abierta | Ctrl+~ |
cambio de nombre de variable | F2 |
Abrir/cerrar barra lateral | Ctrl+B |
División del editor | Ctrl+\ |
miniatura | Barra de menú: Ver/Apariencia |
Sangría de código | Ctrl+[/] |
Formato de código | Ctrl+Mayús+I |
Insertar una línea debajo | Ctrl+entrar |
pasar a la definición | F12 |
Acercar y alejar el área de edición | Ctrl+ -/+ |
5.1 Interfaz
Cuatro áreas principales : barra de menú, barra lateral, área de edición, barra de estado