在Ubuntu18.04系统下编译C程序的一般流程,vim文本编辑器的使用,makefile的使用等

  • 一、vim教程
    • 1. 功能
    • 2. 模式
    • 3. 基本操作
  • 二、在Ubuntu系统下使用gcc编译c程序
    • 1、准备工作
    • 2、代码部分
    • 3、编译过程
  • 三、在Ubuntu系统下使用makefile编译c程序
    • 1、makefile格式要求
    • 2、编译过程
  • 四、在win10系统使用visual stdio2019编译c程序

一、vim教程

1. 功能

  • 命令行模式下的文本编辑器。
  • 根据文件扩展名自动判别编程语言。支持代码缩进、代码高亮等功能。
  • 使用方式:vim filename
    如果已有该文件,则打开它。
    如果没有该文件,则打开个一个新的文件,并命名为filename

2. 模式

  • 一般命令模式
    默认模式。命令输入方式:类似于打游戏放技能,按不同字符,即可进行不同操作。可以复制、粘贴、删除文本等。
  • 编辑模式
    在一般命令模式里按下i,会进入编辑模式。
    按下ESC会退出编辑模式,返回到一般命令模式。
  • 命令行模式
    在一般命令模式里按下:/?三个字母中的任意一个,会进入命令行模式。命令行在最下面。
    可以查找、替换、保存、退出、配置编辑器等。

3. 基本操作

命令 功能
i 编辑模式
Esc 一般命令模式
:w 保存
:wq 保存并推出
:q 退出
:q! 强制退出
dd 删除当前行
:set nu 设置行号
:set nonu 隐藏行号
dG 删除全文
G 光标移到最后一行

二、在Ubuntu系统下使用gcc编译c程序

1、准备工作

1、在Vmware中输入ifconfig,得到自己IP

2、在Xshell软件,利用SSH连接虚拟机,默认端口号22

3、更换阿里源
输入命令sudo vim /etc/apt/sources.list
按下Esc+dG删除全文
复制阿里源,Shift+insert粘贴到vim
按下Esc+:wq保存退出
阿里源如下:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

4、更新软件及软件包,安装gcc和make
sudo apt-get update
sudo apt-get upgrade
安装gcc和make
sudo apt-get install gcc
sudo apt-get install make
等待进度条结束即可

2、代码部分

题目要求:
编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。
(1)在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;
(2)在windows系统下用VS2019编译器编译主程序main1.c 并运行。
在上述任务基础上,在ubuntu系统下用Makefile方式编程主程序。


(1)main1.c

//main1.c文件内容
#include <stdio.h>
#include "sub1.h"int main()
{int a = 16, b = 5;printf("%.2f", x2x(a, b));return 0;
}

(2)sub1.c

//sub1.c
#include "sub1.h"
float x2x(int a, int b)
{float c = (float) a / b;return c;
}

(3)sub1.h

//sub1.h
#ifndef _SUB1_H_
#define _SUB1_H_float x2x(int a, int b);#endif

3、编译过程

将三个文件存入,使用命令gcc -o main1 main1.c sub1.c编译完成
./main1运行编译结果

三、在Ubuntu系统下使用makefile编译c程序

1、makefile格式要求

target : prerequisites
[tab]command
  • target:也就是一个目标文件,可以是Object File,也可以是执行文件。
    还可以是一个标签(Label),注意不能重复
  • prerequisites: 要生成那个target所需要的文件或是目标。
  • command: 就是make需要执行的命令
  • 注意command之前需要Tab,而不能用空格替代

2、编译过程

1、编辑makefile文件,vim makefile输入以下内容

main2: sub1.o main1.cgcc main1.c sub1.o -o main2sub1.o: sub1.cgcc -c sub1.c -o sub1.oclean:rm *.o

2、使用命令make编译
3、./main2查看编译效果,对比gcc编译结果一致

四、在win10系统使用visual stdio2019编译c程序


感谢fatyuchen老师的Linux课程指导
感谢优秀学姐的博客https://blog.csdn.net/qq_46467126/article/details/120279485?spm=1001.2014.3001.5502
另一篇优秀博客借鉴https://blog.csdn.net/txmnQAQ/article/details/120254434?spm=1001.2014.3001.5502

Ubuntu18.04编译c语言程序相关推荐

  1. Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南

    Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南 实验环境 下载Android源码树 在pixel3上安装手机驱动版本 编译Android源码 Android ...

  2. Ubuntu18.04 编译报错 `No package ‘orocos-bfl‘ found` 的解决方法

    写在前面 笔者运行环境Ubuntu18.04,ROS-melodic. 在运行 robot_pose_ekf ,出现了 bfl 的报错. 一.报错提示 No package 'orocos-bfl' ...

  3. Linux GCC简明教程(使用GCC编译C语言程序)

    文章目录 Gedit 编辑器 GCC 编译器 1) 生成可执行程序 2) 运行可执行程序 完整的演示 分步骤编译 1) 编译(Compile) 2) 链接(Link) 市面上常见的 Linux 都是发 ...

  4. OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录

    OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录 1.下载源码和安装依赖包 2.解压源码文件和配置路径 3.配置Cmake并编译OpenCV 4.导入Op ...

  5. android 源码编译core dumped,Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记

    Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记 经过不断的尝试并经过一晚上的编译终于在ubuntu18.04的虚拟机内编译成功Android 8.1,下面我列举以下在编译 ...

  6. 怎样用gcc编译c语言,使用GCC编译C语言程序

    使用Eclipse CDT开发C语言程序,虽然使用很方便,效率也很高,但是它向我们隐藏了很多细节.虽然大多数时候这并不影响我们的开发,但是当我们需要对程序的编译链接过程进行更加特殊的控制,以获得可以满 ...

  7. gcc编译c语言多线程程序的步骤,GCC分步骤编译C语言程序

    上节<GCC编译C语言程序完整演示>讲解的是通过gcc命令一次性完成编译和链接的整个过程,这样最方便,大家在学习C语言的过程中一般都这么做.实际上,gcc命令也可以将编译和链接分开,每次只 ...

  8. Ubuntu18.04 编译安装 Realtek 8852 无线网卡驱动

    记录一下Ubuntu18.04 编译安装 Realtek 8852 无线网卡驱动全过程 内核版本: Linux 5.6.19-050619-generic 先是一步一步按照这个做的,到make的时候发 ...

  9. Ubuntu18.04 编译 ncnn

    官方文档(https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux-x86)上说的是: install g++ cmake p ...

最新文章

  1. apply call bind 简介
  2. 深度学习实战讲词嵌入 很好的 NLP电子书
  3. xampp php源码的路径,php – XAMPP中的根路径
  4. 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
  5. swagger报错 java.lang.NumberFormatException: For input string: ““
  6. pandas中drop用法_如何使用drop方法对数据进行删减处理
  7. 使用python爬取东方财富网机构调研数据
  8. 设置PL/SQL工具SQL窗口的字体大小及颜色
  9. UITextField对字符串的个数限制
  10. NOIP 贪心 国王游戏
  11. Indent Guides插件格式代码
  12. SQLSERVER 函数大全
  13. lol人物模型提取(四)
  14. 新买的服务器安装系统流程,新买的服务器安装操作系统
  15. paip.python错误解决17
  16. 介绍一个牛人的机器学习PPT
  17. 看透说破:客户服务首解率(FCR)的迷思
  18. Mint20系统安装微信
  19. 【支付宝小程序控制硬件①】 申请个人支付宝小程序开发的个人账户,说说那些睬坑日志,集成mqtt协议在支付宝小程序,实现基本通讯!
  20. NPDP产品经理证书(2019年04月),NPDP是IBM和华为的IPD的祖师爷。IPD学不到,NPDP还是可以学到的。...

热门文章

  1. OpenAnolis开源社区的萌芽与发展
  2. qq浏览器打开word 技术原理_无需安装阅读器,PDF还可以这样打开,涨姿势了
  3. csr sha2生成 linux,Openssl生成csr的解决方案
  4. 基于心理旋转的视线诱导设施优化及应用案例分析
  5. Android 模仿flabby bird游戏开发
  6. 力矩电机控制基本原理
  7. SysAdmim 必备:系统性能大牛 Brendan Gregg 分享的 Linux 性能工具
  8. Brendan Gregg 性能分析的方法
  9. 一种基于贝塞尔曲线的终端定位轨迹拟合方法
  10. 如何利用诸葛IO做数据分析?