LINUX常用命令——gcc编译篇

发布时间:2023年12月18日

LINUX常用命令——gcc编译篇

本文设计了LINUX一些基本命令的讲解包括基本命令ls,man;编译命令gcc以及相关参数说明,【练习:输出斐波那契数列】

一、常用基本命令的讲解

1.1 ls 列出目录内容

ls 是 Linux 系统中用于列出目录内容的命令。以下是常用的 ls 命令及其选项:

  1. ls:列出当前目录的文件和子目录。
  2. ls -a:显示所有文件,包括以点(.)开头的隐藏文件。隐藏文件通常是系统文件或配置文件。
  3. ls -l:以长格式显示文件列表,包括文件的详细信息,如权限、所有者、文件大小、修改时间等。
  4. ls -al:结合了 -a-l 选项,以长格式显示所有文件,包括隐藏文件。

1.2 man 查看命令手册

man 命令是 Linux 系统中用于查看命令手册(manual)的工具。通过 man 命令,你可以获取关于特定命令的详细信息,包括命令的用法、选项、参数以及其他相关信息。下面是一些使用 man 命令的示例:

  1. 查看命令的手册页

    man <command>
    

    例如,要查看 ls 命令的手册页,可以执行:

    man ls
    

这将显示 ls 命令的详细手册。
在这里插入图片描述

  1. 浏览手册页

    一旦你进入手册页,你可以使用箭头键进行上下滚动。按下 q 键退出手册页返回终端。

  2. 搜索关键字

    如果你想在手册页中搜索特定关键字,你可以按下 / 键,然后输入关键字。按下 n 键可以跳转到下一个匹配项,按下 N 键可以跳转到上一个匹配项。

  3. 离开手册页

    在手册页中,按下 q 键可以退出手册页。

示例:

# 查看ls命令的手册页
man ls

通过 man 命令,可以深入了解每个命令的功能和用法,这对于学习和使用 Linux 命令非常有帮助。

二、 GNU Compiler Collection编译命令(gcc)

2.1 gcc 编译执行一条龙使用方法(基本使用方法)

创建一个.c文件,然后输入一个简单的c代码,比如

#include <stdio.h>

int main()
{
printf("hello world!!\n");
return 0;
}
  gcc main.c  //默认生成a.out

在这里插入图片描述

  gcc main.c -o main //生成的文件会被命名为main

在这里插入图片描述

./main 执行

在这里插入图片描述

2.2 gcc 编译生成包含调试信息的可执行文件

如果你想使用 gcc 编译时生成包含调试信息的可执行文件,你可以使用 -g 选项。这个选项告诉编译器在可执行文件中包含调试信息,这对于在调试过程中进行源代码级别的调试非常有用。

下面是一个示例:

gcc -g main.c -o main_debug

在这个例子中,-g 选项告诉 gcc 在编译时生成包含调试信息的可执行文件。生成的可执行文件的名称是 main_debug,你可以根据需要调整名称。

然后,你可以使用调试器(比如 gdb)来调试程序。例如:

gdb ./main_debug

然后在 gdb 中运行你的程序,你就可以使用各种调试命令进行源代码级别的调试。

2.3 gcc 编译成汇编文件(.s)

如果你想使用 gcc 生成汇编代码(.s 文件),可以使用 -S 选项。这个选项告诉编译器生成汇编代码而不进行后续的汇编和链接。

下面是一个示例:

gcc -S main.c

这将生成一个名为 main.s 的汇编代码文件,其中 main.c 是你的 C 语言源代码文件。

你可以通过指定输出文件的名称来自定义生成的汇编文件的名称:

gcc -S main.c -o main_assembly.s

在这个例子中,生成的汇编代码文件的名称为 main_assembly.s

请注意,生成的汇编代码文件可以使用文本编辑器查看,以了解编译器是如何将你的 C 代码转换为汇编代码的。

2.4 gcc 链接其他库

仅进行链接,不进行编译

gcc -c input_source.c

如果你想要链接到指定的库,你可以使用 -l 选项来告诉 gcc 在链接阶段使用特定的库。通常,库的名称是在lib前缀之后,不包括文件扩展名。例如,链接到数学库时,你可以使用 -lm

以下是一个示例:

gcc main.c -o main -lm

在这个例子中,-lm 指定链接到数学库。如果你有其他库的需求,可以相应地更改选项。

如果库文件不在标准路径中,你可能需要使用 -L 选项指定库文件的路径。例如:

gcc main.c -o main -L/path/to/library -lmylibrary

在这个例子中,-L/path/to/library 指定库文件的路径,而 -lmylibrary 指定链接到名为 libmylibrary.so(或 libmylibrary.a)的库文件。

请注意,链接到库时,编译器需要找到库文件。如果库文件不在标准路径中,可以使用 -L 选项指定库文件的路径。

练习,输出斐波那契数列,n由终端输入

#include <stdio.h>
 
int main()
{
    int i, n,  nextTerm;
    int t1=0;
    int t2=1;
    printf("输出几项: ");
    scanf("%d", &n);
 
    printf("斐波那契数列: ");
 
    for (i = 1; i <= n; ++i)
    {
        printf("%d, ", t1);
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
    }
    return 0;
}

运行的效果:
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_63831368/article/details/135072121
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。