[Compilar] Relación y uso de gcc make cmake Makefile CMakeList.txt

una relación

1 gcces 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 makees una herramienta de procesamiento por lotes . Gestionar el proceso de compilación durante todo el proyecto. Se basa en el archivo MAKE.

3 makefilees 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 cmakees una herramienta de construcción multiplataforma . cmake puede generar archivos MAKE más fácilmente para que make los utilice.

5 cmakelistes un archivo de texto utilizado para ordenar cmake .

imagen-20230726151254616

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

imagen-20230731165711403

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

imagen-20230731165958597

imagen-20230731170020543

imagen-20230731170034849

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

imagen-20230726212901303

imagen-20230726212915786

三 crear, crear archivo

Cuatro cmake, cmakelist

4.1 Características gramaticales

imagen-20230728110412455

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})

imagen-20230731165308494

imagen-20230731165343782

imagen-20230731165410438

4.2 Variables importantes

imagen-20230731165534974

imagen-20230731165553971

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

imagen-20230731153412517

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

imagen-20230728095310489

5.2 Complementos

imagen-20230731164620130

5.3 Carpeta .vscode

1 lanzamiento.json
2 tarea.json

Supongo que te gusta

Origin blog.csdn.net/weixin_44029896/article/details/132026326
Recomendado
Clasificación