当前位置: 首页 > article >正文

以makefile的方式在linux上编译代码(小白级别)

作者:爱塔居

作者简介:大四学生,分享自己的学习片段~

目录

前言

一、创建主要文件

 二、makefile


前言

多有不足,以供参考,欢迎大佬们指点。我是在虚拟机上执行的,应该都一样。我用的VirtualBox,然后找到terminal运行(不需要跟我一样)


最开始是这个界面: 

首先了解一下基础linux命令:

vboxuser@Myvirtual:~$ vi hello.c
(第一个语句里面就可以编写代码了。点击esc,点击i,后开始写,写完esc,输入 “:wq”,就能保存)

vboxuser@Myvirtual:~$ gcc hello.c -o hello -Wall
vboxuser@Myvirtual:~$ ./hello

ctrl+z 可以强制退出运行

修改文件还是一样用vi

然后删除文件用 rm

ls 是查看当前目录所有文件

cd + 文件夹名 是进入当前文件

简单了解一下,我们就可以学用makefile方式进行写代码了

一、创建主要文件

①首先

vi test1.c

进入test1.c文件

#include <stdio.h>
#include "test1.h"
int get_line(char s[], int lim)
{
    int c, i;
    int j;
    j = 0;
    for (i = 0;(c=getchar()) != EOF && c != '\n'; ++i)
    {
    if (i < lim - 2)
    {
    s[j++] = c;
    }
    }
    if (c == '\n')
    {
        s[j++] = c;
        ++i;
    }
    s[j] = '\0';
    return i;
}

 如果只是复制,就不用点esc了,直接

:wq

 ②创建main_test1.c文件

vi main_test1.c
#include "test1.h"
#include <stdio.h>
#define MAXLINE 1000//宏定义的语句要放在头文件后面
int main()
{
    int len;    /*  当前行长度  */
    int max;    /*  目前为止发现的最长行的长度  */
    char line[MAXLINE];    /*  当前的输入行  */
    max = 80;
    while ((len = get_line(line, MAXLINE)) > 0)
    {
        if (len > max)
        {
        printf("%s", line);
        }
    }
    return 0;
}

一样操作保存退出。

 ③创建test1.h文件

#ifndef TEST1_H//有#的那三行是为了避免头文件重复引入和重复定义加的
#define TEST1_H
int get_line(char [], int);
#endif

 二、makefile

创建一个makefile文件

test1:test1.c test1.h main_test1.c
        gcc -Wall test1.c main_test1.c -o test1

 

写完保存退出。

输入如下代码后回车:

make test1

 

如果没有报错,那就非常完美了!!!那就可以编译了。

 ./test1

 

然后就可以运行了。


http://www.kler.cn/news/136506.html

相关文章:

  • 【AI学习】Mamba学习(十二):深入理解S4模型
  • vue写个表格,让它滚动起来,没有用datav,有的时候结合会出错,一种简单的方法,直接用animation
  • MySQL查看当前客户端连接数的方法
  • 线上遇到的问题记录(说多了都是泪)
  • 【Javaee】网络原理—TCP协议的核心机制
  • 本地docker部署中间件和应用
  • kubernetes测试部署一个nginx
  • 基于springboot实现智能热度分析和自媒体推送平台系统项目【项目源码】计算机毕业设计
  • 【python百宝箱】抛开GIL束缚:线程、进程、异步实现高效编程
  • 记录 ubuntu 硬盘分区跟格式化(fdisk命令)
  • 数据分析基础之《jupyter notebook工具》
  • 如何给shopify motion主题的产品系列添加description
  • PHP8新特性
  • 掌握源码,轻松搭建:一站式建站系统源码 附完整搭建步骤与教程
  • 这篇文章带你了解:如何一次性将Centos中Mysql的数据快速导出!!!
  • 44-设计问题-最小栈
  • nn.KLDivLoss,nn.CrossEntropyLoss,nn.MSELoss,Focal_Loss
  • 自动化运维中间件架构概况
  • Redis变慢怎么办?
  • GIN框架:自定义结构体到出JSON格式
  • 雪花算法的使用
  • 抖音电商双11官方数据最全汇总!
  • 【c++】前缀和教程
  • 微创机器人:CRM撬动售后服务数字化升级
  • 代码随想录算法训练营第23期day59|503.下一个更大元素II、42. 接雨水
  • 【前端学java】java中final修饰符(5)