zoukankan      html  css  js  c++  java
  • Linux基础学习 | gcc、g++的安装和使用

    安装gcc

    1、apt-get命令是debain Linux发新版的APT软件包管理工具。

    dabianubuntudeepin等Linux系统通过以下命令:
    安装gcc:Shell输入sudo apt-get install gcc命令,然后回车确定就可以了。
    安装g++:Shell输入sudo apt-get install g++命令,回车确定。
    用于我这里已经安装过,所以显示gcc 已经是最新版。
    在这里插入图片描述
    2、yum命令是在FedoraRedHat以及SUSE中基于rpm的软件包管理器。
    Shell输入sudo yum install gcc命令,sudo yum install gcc-g++命令。

    使用gcc

    0、使用vim编写程序,命令vim main.c编写如下代码:

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
    	printf("hello world!
    ");
    	exit(0);
    }
    

    在这里插入图片描述
    1、预编译:命令gcc -E mian.c -o main.i预编译,生成main.i文件。其中-E表示预编译,main.c是源文件,main.i表示生成的文件(-o 表示目标Object)
    在这里插入图片描述
    2、编译:命令gcc -S main.i -o main.s编译,生成main.s文件
    在这里插入图片描述
    3、汇编:命令gcc -c main.s -o main.o汇编,生成main.o文件
    在这里插入图片描述
    4、连接:命令gcc -o mian.o -o main连接,生成可执行文件
    在这里插入图片描述
    5、执行:命令./main执行。./表示当前目录。
    在这里插入图片描述
    6、直接编译
    1、可以用命令gcc -c main.c -o main.o命令一步编译至汇编阶段。
    在这里插入图片描述
    2、可以用命令gcc -o main main.c命令将c程序一步编译完成。此命令可用于简化c程序编译步骤。
    在这里插入图片描述
    另外,有些程序依赖动态库在编译时在后边加上-l库名
    比如2.c程序中用到了#include <math.h>编译时应该加上动态共享库名在这里插入图片描述

    gdb调试

    首先安装gdb,apt-get install gdb
    1、编译程序gcc -o main main.c -g,加上-g生成调试信息
    2、gdb main开始调试
    在这里插入图片描述
    命令:
    l 显示代码    p 打印
    b 加断点     q 退出
    r 运行      info break
    n 单步调试    info threads
    s 进入函数    threads id
    finish 退出函数  set follow-fork-mode child
    bt 显示函数调用栈关系

    此外,还有以下几种调试
    1. core文件调试 ulimit -c size 设置生成文件大小(程序崩溃时生成)
    2. strace 跟踪打印系统调用 -p pid
    3. ltrace 跟踪库函数
  • 相关阅读:
    HDU 5883 欧拉回路
    HDU 5889 Barricade (Dijkstra+Dinic)
    网络流Dinic算法模板 POJ1273
    216. Combination Sum III
    211. Add and Search Word
    973. K Closest Points to Origin
    932. Beautiful Array
    903. Valid Permutations for DI Sequence
    514. Freedom Trail
    312. Burst Balloons
  • 原文地址:https://www.cnblogs.com/TaoR320/p/12680142.html
Copyright © 2011-2022 走看看