Aprendizaje de la serie Linux (2): introducción y uso del editor Vim, proceso de compilación de archivos, herramienta Makefile, depurador Gdb

Tabla de contenido

introducción:

Se agregaron comandos básicos:

comando gato:

comando hombre:

comando principal:

comando de cola: 

encontrar comando:

comando grep:

​​​​​​​​La combinación del comando grep

comando alquitrán:

Aprendizaje del editor Vim:

Comandos comunes para cambiar del modo de comando al modo de edición: 

Comandos comunes para cambiar del modo de comando al modo de última línea: 

Comandos comunes en el modo de última línea: 

Aquí escribimos algunos comandos comunes de vim: 

Introducción al modo de comando y comandos comunes:

ndd (eliminar comando por línea):

u (deshacer comando):

nyy (copiar n líneas consecutivas del comando de contenido):

p (pegar comando): 

Comando gg (mueva el cursor al principio del archivo): 

Comando G (mueva el cursor al final del archivo):

shift + 4 (salta el cursor al final de la línea actual):

shift + 6 (salta el cursor al principio de la línea actual): 

Comando nG (saltar al número especificado de líneas):

La última introducción del comando de modo de línea: 

comando wq:

w comando:

comando q:

q! Orden:

modo de edición:

Comandos para configurar el editor vim:

establecer nu comando:

sintaxis en las instrucciones: 

Configure el editor de Vim: 

Introducción al proceso de compilación y ejecución de archivos en Linux:

Permisos y categorías de archivos:

Introducción al proceso de compilación de programas C en sistema Linux:

primer paso:

Segundo paso:

tercer paso:

el cuarto paso:

el quinto paso:

La relación entre los archivos de encabezado de Linux y los archivos fuente: 

 Creación de comandos y escritura de archivos MAKE (gestión de archivos de proyecto):

El primer paso: escribir el archivo de texto (trabajo de preparación)

Paso 2: escriba el archivo MAKE, administre el proyecto y realice la compilación automática (.o)

Paso 3: use el comando make para ejecutar el conjunto de instrucciones en el archivo MAKE:

Paso 4: Ejecute el programa principal en el directorio actual:

Hay dos posibles informes de errores y soluciones en la terminal:

Instalación del depurador Gdb:

Pensamientos sobre la depuración:

MacOS instala el depurador Gdb:

Pasos para instalar el depurador Gdb en CentOS: 

Resumir:

Referencias:


introducción:

Catálogo de aprendizaje de la serie Linux:

Aprendizaje de la serie Linux (1): instalación del sistema Linux (MacOS), sistema de archivos, comandos básicos

En el último artículo, básicamente aprendimos sobre la instalación de sistemas Linux basados ​​en sistemas Mac, varias versiones de Linux, sistemas de archivos de Linux y comandos de uso común en Linux. En este artículo, entenderemos y aprenderemos el editor VIM que viene con el sistema Linux. El editor VIM en sí tiene funciones poderosas y una variedad de complementos. Aprender VIM también es muy importante. Al mismo tiempo, debido a que el sistema Mac es muy similar al sistema Linux, estudiaré directamente VIM en este artículo sobre el sistema Mac, y todas las operaciones también se pueden reproducir en Linux.

Se agregaron comandos básicos:

comando gato:

El nombre completo del comando cat (concatenar) se usa principalmente para ver archivos únicos o múltiples. El comando cat también tiene la función de fusionar varios archivos y redirigir archivos.

Use el comando cat para mostrar el contenido del archivo:

 Por ejemplo, creé dos archivos a.txt y b.txt en el directorio de prueba aquí. La información de texto en los dos archivos se muestra en la figura:

Uso el comando cat para fusionar dos archivos de texto, el archivo fusionado se llama c.txt, ingrese el comando:

cat a.txt b.txt > c.txt

 Entonces, ¿qué es la redirección?

ingrese el comando:

cat > c.txt

 

El sistema nos pide que ingresemos, como se muestra en la figura, ingresé dos líneas de datos, la primera línea es 1234 y la segunda línea es 5678. Después de completar la entrada, presione Ctrl + D para finalizar la entrada, y luego usamos el comando cat para ver el archivo c.txt:

 

Como se muestra en la figura, usamos la función de redirección de cat para editar directamente el archivo c.txt sin habilitar el editor vim y guardarlo automáticamente.

comando hombre:

El comando man se usa para ver el manual de ayuda del comando. Por ejemplo, quiero ver el comando rm aquí. La función del comando rm es eliminar archivos o carpetas, y hay funciones correspondientes a diferentes sufijos.

comando principal:

El comando head es similar al comando cat y se usa para mostrar el contenido de las primeras n líneas del archivo. El uso específico es:

head -n 文件名

Por ejemplo, el archivo c.txt recién fusionado tiene dos líneas de contenido en total, si solo necesitamos mostrar el contenido de la primera línea del archivo, ingrese el comando:

head -1 c.txt

Como se muestra en la imagen:

 

comando de cola: 

El comando tail se usa para mostrar el contenido de las últimas líneas del archivo. Es opuesto al comando head. El uso específico es:

tail -n 文件名

Por ejemplo, aquí necesito mostrar el contenido de la última línea del archivo c.txt, luego ingrese el comando:

encontrar comando:

El comando de búsqueda se usa para buscar el archivo especificado en el árbol de directorios, el uso específico es:

find 路径 -name 文件名:

Por ejemplo, aquí necesito obtener la ruta del archivo de texto llamado main.c en el directorio del escritorio, luego ingrese el comando:

find /Desktop -name main.c

Como se muestra en la imagen:

Como se muestra en la figura, la ruta para obtener el archivo main.c es /Desktop/test/main.c

Además, si no podemos encontrar el archivo, la ruta no se mostrará:

comando grep:

El comando grep se usa para filtrar las líneas de la cadena especificada en el archivo. El uso específico es:

grep “字符串” 文件名

Por ejemplo, quiero filtrar las líneas que contienen cadenas int en el archivo main.c, primero mostrar los archivos en el archivo main.c e ingresar el comando:

cat main.c

Luego filtra los archivos:

grep "int" main.c

Como se muestra en la imagen:

La combinación del comando grep y la canalización "|":

La función de usar el comando grep en combinación con la canalización "|" es usar la salida del comando anterior como entrada del siguiente comando. El uso específico es:

路径 | grep 过滤名称

Por ejemplo, aquí necesito buscar todos los archivos que terminen con .c en la carpeta de prueba en el escritorio, luego ingrese el comando:

ls /test | grep .c

Como se muestra en la imagen:

comando alquitrán:

El comando tar se usa para empaquetar archivos. Empaquetar archivos es el primer paso para crear un archivo comprimido. El uso específico del comando tar es:

c 创建包文件
f 指定目标为文件而不是设备
v 显示详细过程
t 显示包中的内容而不释放
x 释放包中的内容
z GNU 版本新加的,使得 tar 有压缩和解压的功能

Por ejemplo, quiero empaquetar los tres archivos main.c add.c mul.c, ingrese el comando:

tar cvf tar.tar add.c mud.c main.c//参数名称和作用参考上方

Como se muestra en la figura, se genera un paquete de archivos con el nombre de sufijo tar.

El segundo paso es generar el archivo comprimido empaquetado e ingresar el comando:

gzip tar.tar

De manera similar, también podemos realizar los pasos de empaquetado y compresión en un solo paso, y comprimir y descomprimir comandos en un solo paso:

tar zcvf file.tar.gz main.c add.c mul.c

Como se muestra en la figura, un archivo comprimido se genera en un solo paso:

 Se genera el archivo comprimido, ¿cómo descomprimimos el archivo comprimido?

ingrese el comando:

gzip -d tar.tar.gz

​​​​​​​

Aprendizaje del editor Vim:

El editor vim tiene varios modos, como se muestra en la figura:

Comandos comunes para cambiar del modo de comando al modo de edición: 

1. a //进入到当前光标后开始编辑
2. A //进入到当前光标所在行的行末开始编辑
3. i //进入当前光标位置开始编辑
4. I //进入当前光标所在行的行头开始编辑
5. o //进入当前光标下一行开始编辑
6. O //进入当前光标上一行开始编辑

Comandos comunes para cambiar del modo de comando al modo de última línea: 

1. : //对文本的设置或保存工作
2. / //对文本进行全文向下搜索字符串 string
3. ? //对文本进行全文向上搜索字符串 string

Comandos comunes en el modo de última línea: 

1. :w //保存文本
2. :q //退出编辑
3. :wq //保存并退出
4. :q! //强制退出
5. :w newfile //另存为
6. :set nu //显示行号
7. :set nonu //取消行号
8. : set hlsearch //设置高亮搜索
9. : set nohlsearch //取消高亮搜索
10. :n,ms/oldstring/newstring //替换整个文本每行的第一个oldstring
11. :n, m s/oldstring/newstirng/g //替换整个文本所有的 oldstring
12. /string //向下搜索string
13. ?string //向上搜索 string

Aquí escribimos algunos comandos comunes de vim: 

1. n dd //删除光标开始向下的 n 行
2. n yy //拷贝光标开始向下的 n 行
3. p //粘贴
4. u //撤销上一次操作
5. ctrl + r // 恢复上一次撤销操作
6. r //替换一个字符
7. shift + 6 //光标移动到当前行的行头
8. shift + 4 //光标移动到当前行的行尾
9. shift + g //光标移动到整个文本的最后一行
10. gg //光标移动到整个文本的第一行
11. n shift + g //光标移动到第 n 行
12.dnshift+g //删除光标到n行的内容
13. y n shift+g //拷贝光标到n行的内容

Introducción al modo de comando y comandos comunes:

Después de ingresar VIM en la terminal, verá la siguiente interfaz:

El lugar donde tracé la línea roja es la versión del editor vim, ahora nos encontramos con que cuando presionamos la mayoría de las teclas del teclado, la interfaz no responde, solo cuando ingresamos la tecla ":" podemos ingresar texto en la esquina inferior izquierda de la interfaz, que es el modo de comando.

A continuación introducimos varios comandos en el modo comando:

ndd (eliminar comando por línea):

El comando ndd se usa para eliminar directamente línea por línea en un archivo de texto. Tenga en cuenta que la n aquí representa cuántas líneas necesita eliminar comenzando desde el cursor

Ingrese los datos de 9 líneas 1 a 9, como se muestra en la figura:

ingrese el comando:

9dd

Como se muestra en la figura, los datos de 9 filas se eliminan directamente:

u (deshacer comando):

Si queremos restaurar el contenido de texto anterior, también hay un comando de deshacer en el editor vim, ingrese el comando:

u

Como se muestra en la figura, la operación de eliminación ahora se deshace:

nyy (copiar n líneas consecutivas del comando de contenido):

El comando nyy se usa para copiar el contenido de n líneas consecutivas, por ejemplo, si quiero copiar el contenido de las primeras tres líneas (1, 2, 3), ingrese el comando:

3yy

Como se muestra en la imagen, hay una oración en la parte inferior izquierda:

p (pegar comando): 

El comando p se usa para pegar el contenido copiado, por ejemplo, acabamos de copiar el contenido de las primeras tres líneas, ahora pegamos el contenido de las primeras tres líneas al final del archivo, ingrese el comando p:

Como se muestra en la figura, el contenido de las primeras tres líneas se pega correctamente al final.

Comando gg (mueva el cursor al principio del archivo): 

Como se muestra en la figura, ingresé el comando gg y moví con éxito el cursor al principio:

Comando G (mueva el cursor al final del archivo):

Como se muestra en la figura, ingresé el comando G y moví con éxito el cursor al final del archivo:

shift + 4 (salta el cursor al final de la línea actual):

Como se muestra en la imagen:

shift + 6 (salta el cursor al principio de la línea actual): 

Como se muestra en la imagen:

Comando nG (saltar al número especificado de líneas):

n representa la línea a la que desea saltar, por ejemplo, quiero saltar a la línea 6 ahora, ingrese el comando 6G:

La última introducción del comando de modo de línea: 

Podemos ingresar al modo de comando presionando la tecla Esc en el modo de edición, y luego ingresar ":" para ingresar al modo de última línea. De manera similar, el modo de última línea también tiene los comandos correspondientes. Presentaremos estos comandos:

comando wq:

El comando wq se usa para guardar y salir del archivo editado.

w comando:

El comando w es solo para guardar.

comando q:

El comando q solo sale sin guardar.

q! Orden:

q! El comando es para forzar la salida sin guardar.

modo de edición:

Si queremos ingresar al modo de edición de VIM, presione la tecla "I" en el teclado y aparecerá la palabra "INSERTAR" en la esquina inferior izquierda de la interfaz del terminal, como se muestra en la figura:

 Cuando aparece "INSERT", podemos ingresar contenido en el editor vim, que es el modo de edición.

Si ingresamos aleatoriamente algunos números 123 en vim en este momento, y tenemos la intención de guardar y salir, ingrese el comando: wq, como se muestra en la figura:

El editor de VIM nos indicará que aún no tenemos un nombre de archivo, ingresamos "wq:+nombre de archivo"  , por ejemplo, si ingreso ":wq test.c" aquí, el archivo se guardará en la casa del usuario directorio bajo el nombre test.c.

Comandos para configurar el editor vim:

establecer nu comando:

El comando set nu generalmente se usa para mostrar el número de línea del código en el editor vim. Cuando estamos en el modo inicial de vim, no hay número de línea. Como se muestra en la figura, escribí un programa Hello basado en C idioma en vim El estado inicial No hay número de línea, como se muestra en la figura:

Presionamos la tecla "Esc" e ingresamos el comando ":set nu" para que el código del programa muestre el número de línea, como se muestra en la figura:

sintaxis en las instrucciones: 

La sintaxis en el comando generalmente se usa para mostrar el resaltado de sintaxis en vim.Como se muestra en la figura, aunque hemos establecido el número de línea en vim, el estado inicial del código aún no es tan colorido como los editores clásicos como VScode y Clion. En cambio, todos los programas Los códigos son todos negros:

Presionamos la tecla “Esc” e ingresamos el comando “: syntax on” para que el código muestre resaltado de sintaxis, como se muestra en la figura:

Configure el editor de Vim: 

Anteriormente hablamos de varios comandos básicos de vim, cuando volvemos a ingresar al archivo después de configurarlo en vim, nos encontraremos con que todas nuestras configuraciones anteriores desaparecerán. Todo lo que tenemos que hacer ahora es hacerlo de una vez por todas, y dejar que nuestra configuración única funcione de forma permanente.

En primer lugar, debemos tener claro que el archivo de configuración de vim se llama vimrc, y todas las configuraciones relacionadas con vim se pueden realizar en el archivo vimrc. Por supuesto, los comandos para configurar el archivo vimrc también son consistentes cuando usamos vim para editar otros archivos Ingresamos el comando en la terminal:

vim ~/.vimrc

Después de ingresar el comando, ingrese el archivo vimrc, como se muestra en la figura:

Ahora presionamos la tecla "I" para ingresar al modo "INSERTAR", comenzamos a configurar el archivo vimrc e ingresamos el comando anterior:

syntax on
set nu

 

Presione la tecla "Esc" para salir, presione la tecla ":" para ingresar al modo de comando, ingrese "wq" para guardar y salir. Luego volvemos a editar el archivo test.c recién creado en este momento, como se muestra en la figura:

Como se muestra en la figura, cuando configuramos el archivo vimrc y volvimos a ingresar el archivo test.c, nuestra configuración no desapareció sino que tuvo efecto de forma permanente.

Del mismo modo, también podemos configurar otras configuraciones que queramos en el archivo vimrc, como alinearlo automáticamente, acumular 4 espacios para la tecla de tabulación, etc. Ahora agregamos algunos comandos de uso común en vimrc, aquí damos algunos La configuración de vim de uso común es solo para referencia;

//设置语法高亮
syntax on

//设置行号
set nu
//(set nonu)为取消行号

//设置自动对其、对其、标尺、智能对其
set autoindent
set cindent
set ruler
set smartindent

//将TAB键和4个空格区分开来,与上方makefile文件中的gcc命令前置TAB键问题相吻合
autocmd FileType make set noexpandtab

//将tab键替换为4个空格,这样有利于语法对其
set tabstop=4
set shiftwidth=4
set expandtab
set smarttab

//将编程中常用的符号改为双写并将光标置中
inoremap { {}<left>
inoremap ( ()<Left>
inoremap < <><Left>
inoremap [ []<Left>
inoremap " ""<Left>
inoremap ' ''<Left>

Aquí solo escribí la configuración principal de vim. Por supuesto, hay muchas otras configuraciones de vim en Internet. Puede buscarlas y agregarlas usted mismo si las necesita.

Introducción al proceso de compilación y ejecución de archivos en Linux:

Permisos y categorías de archivos:

Sabemos que no importa en Windows, MacOS o Linux, los archivos son un concepto basado en el almacenamiento externo. Los archivos generalmente se almacenan en discos o discos U. En los sistemas Windows, los archivos generalmente constan de dos partes: nombre de archivo y tipo de archivo. En Linux, los archivos se dividen en diferentes atributos de archivo, son:

r (leer) leer: para archivos, tiene permiso para leer el contenido del archivo; para directorios,
  tiene permiso para explorar directorios. 

w (escribir): para archivos, tiene la autoridad para agregar y modificar el contenido del archivo; para
  directorios , tiene la autoridad para eliminar y mover archivos en el directorio.

x (ejecutar) ejecución: Para archivos, el usuario tiene permiso para ejecutar el archivo; para directorios,
  el usuario tiene permiso para ingresar al directorio.

Los archivos se dividen en archivos ejecutables y archivos no ejecutables. Por ejemplo, en lenguaje C, .c (archivo de origen) o .h (archivo de encabezado).o (archivo de objeto binario) son todos archivos de texto y son archivos no ejecutables. Archivo ejecutable.

Proceso de compilación y enlace del programa:

Aquí explicamos estos varios procesos: 

Etapa de preprocesamiento:

El trabajo principal del preprocesamiento es insertar el archivo de encabezado en el código escrito, generar un archivo con la extensión .i para reemplazar el archivo original con la extensión .c, pero el archivo original aún está reservado, solo el archivo real durante la ejecución. Un archivo ha cambiado.

Fase de compilación: el código del archivo .i se traduce a un lenguaje ensamblador específico. Lo primero que debe hacer el compilador es verificar la estandarización del código, si hay un error, esta etapa no podrá determinar el trabajo real que debe realizar el código. Después de verificar, el compilador traducirá todos los códigos a lenguaje ensamblador y, al mismo tiempo, cambiará la extensión del archivo de .I a .s.

Etapa de ensamblaje: El proceso de ensamblaje convierte el código ensamblador del paso anterior en código máquina (es decir, el código binario que llamamos 01010100, que puede ser leído por una computadora), el archivo generado en este paso se llama archivo objeto. o, y el archivo .o tiene formato binario.

Vinculación: el proceso de vinculación consiste en vincular varios archivos de objetos y archivos de biblioteca requeridos (.so) en el archivo ejecutable final.

Introducción al proceso de compilación de programas C en sistema Linux:

Por ejemplo, aquí escribimos un programa simple helloworld y usamos comandos para demostrar y analizar el proceso de compilación y conexión de archivos.

primer paso:

Cree un archivo ordinario test1026.c, use el editor vim para editarlo y escriba el código C del programa helloworld:

Segundo paso:

Para precompilar test1026.c, ingrese el comando:

gcc -E test1026.c -o test1026.i

Como se muestra en la figura, se genera un archivo test1026.i y vemos este archivo a través del editor vim:

  

Como se muestra en la figura, hay algunas rutas y algo de lenguaje C.

tercer paso:

Para compilar el archivo test1026.i, ingrese el comando:

gcc -S test1026.i -o test1026.s

 

Como se muestra en la figura, se genera un archivo llamado test1026.s De acuerdo con la introducción anterior al tipo de archivo, este archivo debe ser el lenguaje ensamblador después de la traducción del lenguaje C. Podemos ver este archivo a través del editor vim:

Como se muestra en el círculo rojo de la figura, es el código ensamblador después de la traducción al lenguaje C.

el cuarto paso:

Para ensamblar el archivo test1026.s, ingrese el comando:

gcc -c test1026.s -o test1026.0

Como se muestra en la figura, aparece un archivo test1026.0 y vemos el contenido de este archivo a través del editor vim:

Este es el contenido del archivo .o en formato binario. Se puede encontrar que el contenido del archivo en este momento se ha convertido aproximadamente en código de máquina.

el quinto paso:

Para vincular el archivo test1026.0, ingrese el comando:

gcc test1026.0 -o test1026

Como se muestra en la figura, se genera un archivo llamado test1026:

Este test1026 debe ser el archivo ejecutable final de acuerdo con los pasos. Usamos el comando ./ para ejecutar test1026 en el directorio actual para verificar si es realmente ejecutable. Ingrese el comando:

./test1026

Como se muestra en la figura, ¡el programa se ejecuta con éxito!

En Linux, si ya hemos escrito el programa usando el editor vim, solo se necesita un paso para generar un programa ejecutable.Tomemos el archivo anterior como ejemplo, y solo necesitamos ingresar el comando después de escribir el archivo de texto test1026.c :

gcc -o test1026 test1026.c

Este comando puede generar directamente el archivo ejecutable final.

La relación entre los archivos de encabezado de Linux y los archivos fuente: 

En nuestro artículo anterior:

Aprendizaje de series de estructuras de datos (2): explicación detallada de la tabla de secuencias (Contiguous_List)

Una vez hablé sobre la relación entre el archivo fuente y el archivo de encabezado en el IDE. Cuando escribimos un proyecto, generalmente tenemos que declarar una función para implementar en el archivo de encabezado (.h), y luego declarar la función declarada en el archivo de encabezado La función función se implementa en el archivo fuente correspondiente (.cpp):

Por ejemplo, cuando compilamos un archivo en Linux, declaramos la función en el archivo de encabezado y luego implementamos la función función en el archivo fuente. Aquí escribimos una función simple de sumar dos números en el archivo de encabezado y la colocamos en el Referenciado en el archivo fuente:

Declaración de función en el archivo de encabezado:

Referencias a archivos de encabezado en archivos fuente:

Compilar y ejecutar:

ingrese el comando:

gcc -o main main.c

 

Como se muestra en la figura, el programa se ejecuta correctamente.

Como dijimos anteriormente, cuando se hace referencia a un archivo de encabezado, generalmente se usa el símbolo "", porque si se usa el símbolo <>, se buscará en la ruta del sistema por defecto. Si agregamos #include" en main.c archivo en este momento ¿Qué sucede si add.h" se cambia a #include<add.h>? Como se muestra en la imagen:

Ocurrió un error en la compilación, porque el sistema no encontró el archivo de encabezado add.h en la ruta del archivo de encabezado predeterminado, y el almacenamiento de archivos de encabezado en el sistema Linux se coloca en el archivo /usr/include de manera predeterminada, por lo que ahora que sabemos la ruta predeterminada del archivo de encabezado Path, solo necesitamos migrar el archivo de encabezado add.h en la ruta actual a esta ruta, y #include<add.h> naturalmente no informará un error:

ingrese el comando:

mv add.h /usr/include

Compilar y ejecutar de nuevo:

Como se muestra en la figura, la compilación es exitosa y el programa se ejecuta correctamente.

Pero lo que debe tenerse en cuenta aquí es que la ruta /usr/include generalmente almacena archivos de biblioteca estándar de C (como stdio.h, stdlib.h). En general, nuestros archivos de encabezado personalizados no deben colocarse en esta ruta. Esta demostración es solo forzar la declaración #include<add.h> en el archivo main.c para que ya no informe un error. Así que vamos al directorio /usr/include y ponemos add.h donde está.

ingrese el comando:

cd /usr/include
mv add.h /home/parallels/dir

 Creación de comandos y escritura de archivos MAKE (gestión de archivos de proyecto):

Por ejemplo, queremos escribir una función de suma y una función de multiplicación a través de vim y llamar a estas dos funciones en el archivo main.c.

El primer paso: escribir el archivo de texto (trabajo de preparación)

añadir función:

función múltiple:

Llame a las funciones add y mul en el programa main.c:

Paso 2: escriba el archivo MAKE, administre el proyecto y realice la compilación automática (.o)

Cree un archivo MAKE e ingrese el comando:

touch makefile

Use el editor vim para editar el archivo MAKE e ingrese el comando:

  1 all:main
  2 
  3 main:add.o mul.o main.o
  4     gcc -o main add.o mul.o main.o
  5 
  6 add.o:add.c
  7     gcc -c add.c
  8 mul.o:mul.c
  9     gcc -c mul.c
 10 main.o:main.c
 11     gcc -c main.c
 12 clean:
 13     rm -rf *.o main

Como se muestra en la imagen: 

 Guardar y Salir.

Paso 3: use el comando make para ejecutar el conjunto de instrucciones en el archivo MAKE:

Paso 4: Ejecute el programa principal en el directorio actual:

Como se muestra en la figura, la llamada a la función se completa y el programa se ejecuta con éxito.

Hay dos posibles informes de errores y soluciones en la terminal:

Al usar el comando make, la terminal puede reportar errores en dos situaciones, y aquí los discutimos por separado:

El primer error:

makefile:4: *** missing separator.  Stop.

La razón principal de este error es que cuando configuramos vimrc anteriormente, configuramos la tecla TAB igual a 4 espacios, como se muestra en la figura, cuando presionamos la tecla TAB, la línea del comando gcc no será reconocida:

Regresamos al archivo vimrc en el directorio raíz y usamos el editor vim para editar el archivo vimrc.En el archivo vimrc, agregue un comando de este tipo arriba del comando que configuramos la tecla TAB = 4 espacios:

 autocmd FileType make set noexpandtab

Como se muestra en la imagen:

A continuación, reutilizamos el editor vim para escribir el archivo MAKE:

Esta vez, si volvemos a usar la tecla TAB, no aparecerá el error anterior:

Como se muestra en la figura, se reconocen todos los comandos y se resuelve el problema~ 

Luego hay otro error, es decir, el sistema no instala el paquete de dependencia de make en absoluto, por lo que el sistema no puede reconocer el comando make y provoca el error:

Comando de entrada de macOS:

brew install make

Después de que el terminal ejecuta el comando, como se muestra en la figura:

Una vez hecho, ingresamos el comando:

make --version

Se usa para verificar si nuestra instalación fue exitosa y la versión de make que instalamos, como se muestra en la figura:

 Como se muestra en la figura, la instalación está completa y la versión de make es 3.81

Aquí hay dos comandos más para instalar paquetes dependientes en otros sistemas.

Comando de entrada de CentOS:

yum install make

Comando de entrada del sistema Ubuntu:

apt install make

Este es un ejemplo de la gestión de varios archivos de proyecto a través de archivos MAKE. Cuando escribimos un proyecto como una tabla de secuencia, una lista enlazada única y una lista enlazada circular, generalmente necesitamos varios archivos (archivos de encabezado, implementaciones específicas de funciones declaradas en archivos de encabezado) archivos fuente, archivos de prueba), podemos usar el archivo MAKE para compilar varios archivos de proyecto aquí para generar el archivo ejecutable final.

Instalación del depurador Gdb:

Pensamientos sobre la depuración:

Después de que usamos el editor Vim para completar la escritura del programa C, siempre es imposible completar las cosas en un solo paso. Además de los errores de sintaxis del programa, también pueden ocurrir errores durante la ejecución del programa. En este momento, la importancia de la depuración está resaltada Los IDE de Visual Studio Classic, como Clion y Clion, tienen funciones de depuración, y en sus interfaces gráficas, las operaciones de depuración generalmente se completan con operaciones de botón. En el compilador de Visual Studio, generalmente hay dos modos,

Entonces, en Vim, ¿cómo depuramos el programa? Por lo tanto, presentamos el depurador Gdb. El depurador Gdb es una herramienta que puede implementar la depuración en Vim. Lo primero que debemos hacer es instalar el depurador Gdb. Aquí escribo dos sistemas (MacOS, CentOS) para instalar la depuración Gdb. método del dispositivo:

MacOS instala el depurador Gdb:

En macOS, primero abrimos la terminal, la instalamos a través de brew e ingresamos el comando:

brew install gdb

Como se muestra en la figura, la versión del depurador gdb aparece en la terminal, lo que significa que hemos completado la instalación.

Pasos para instalar el depurador Gdb en CentOS: 

Como se muestra en la figura, si el depurador gdb no está instalado, el sistema no puede encontrar el comando gdb.

En CentOS, usamos la herramienta de administración de paquetes yum para instalar el depurador gdb:

Si su versión de CentOS es 8, es posible que encuentre el primer error de terminal:

 El motivo: el 31 de enero de 2022, el equipo de CentOS eliminó todos los paquetes de CentOS del espejo oficial y CentOS8 finalizó su ciclo de vida el 31 de diciembre de 2021.

Solución: cambie la fuente de descarga:

ingrese el comando:

sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

Después de completar el reemplazo, continúe ingresando:

yum install gdb

Si la fuente de descarga es normal, puede iniciar la descarga, como se muestra en la figura:

instalando:

La instalación se ha completado: 

Resumir:

Referencias:

¿Qué significan los atributos r, w y x de los archivos en Linux?

Resuelva el error de Makefile escrito por vim: Makefile: falta el separador (¿quiso decir TAB en lugar de 8 espacios?) Stop._Jeremy_ku's Blog-CSDN Blog

"Autocultivo del programador" 

"La cocina privada LINUX de Brother Bird"

"Tutorial de desarrollo de aplicaciones de la plataforma LINUX V5"

Supongo que te gusta

Origin blog.csdn.net/weixin_45571585/article/details/127449438
Recomendado
Clasificación