Ubuntu18.04编译c语言程序
在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语言程序相关推荐
- Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南
Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南 实验环境 下载Android源码树 在pixel3上安装手机驱动版本 编译Android源码 Android ...
- Ubuntu18.04 编译报错 `No package ‘orocos-bfl‘ found` 的解决方法
写在前面 笔者运行环境Ubuntu18.04,ROS-melodic. 在运行 robot_pose_ekf ,出现了 bfl 的报错. 一.报错提示 No package 'orocos-bfl' ...
- Linux GCC简明教程(使用GCC编译C语言程序)
文章目录 Gedit 编辑器 GCC 编译器 1) 生成可执行程序 2) 运行可执行程序 完整的演示 分步骤编译 1) 编译(Compile) 2) 链接(Link) 市面上常见的 Linux 都是发 ...
- OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录
OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录 1.下载源码和安装依赖包 2.解压源码文件和配置路径 3.配置Cmake并编译OpenCV 4.导入Op ...
- android 源码编译core dumped,Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记
Ubuntu18.04 编译Android 8.1 源码出现的问题及解决笔记 经过不断的尝试并经过一晚上的编译终于在ubuntu18.04的虚拟机内编译成功Android 8.1,下面我列举以下在编译 ...
- 怎样用gcc编译c语言,使用GCC编译C语言程序
使用Eclipse CDT开发C语言程序,虽然使用很方便,效率也很高,但是它向我们隐藏了很多细节.虽然大多数时候这并不影响我们的开发,但是当我们需要对程序的编译链接过程进行更加特殊的控制,以获得可以满 ...
- gcc编译c语言多线程程序的步骤,GCC分步骤编译C语言程序
上节<GCC编译C语言程序完整演示>讲解的是通过gcc命令一次性完成编译和链接的整个过程,这样最方便,大家在学习C语言的过程中一般都这么做.实际上,gcc命令也可以将编译和链接分开,每次只 ...
- Ubuntu18.04 编译安装 Realtek 8852 无线网卡驱动
记录一下Ubuntu18.04 编译安装 Realtek 8852 无线网卡驱动全过程 内核版本: Linux 5.6.19-050619-generic 先是一步一步按照这个做的,到make的时候发 ...
- Ubuntu18.04 编译 ncnn
官方文档(https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux-x86)上说的是: install g++ cmake p ...
最新文章
- apply call bind 简介
- 深度学习实战讲词嵌入 很好的 NLP电子书
- xampp php源码的路径,php – XAMPP中的根路径
- 一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
- swagger报错 java.lang.NumberFormatException: For input string: ““
- pandas中drop用法_如何使用drop方法对数据进行删减处理
- 使用python爬取东方财富网机构调研数据
- 设置PL/SQL工具SQL窗口的字体大小及颜色
- UITextField对字符串的个数限制
- NOIP 贪心 国王游戏
- Indent Guides插件格式代码
- SQLSERVER 函数大全
- lol人物模型提取(四)
- 新买的服务器安装系统流程,新买的服务器安装操作系统
- paip.python错误解决17
- 介绍一个牛人的机器学习PPT
- 看透说破:客户服务首解率(FCR)的迷思
- Mint20系统安装微信
- 【支付宝小程序控制硬件①】 申请个人支付宝小程序开发的个人账户,说说那些睬坑日志,集成mqtt协议在支付宝小程序,实现基本通讯!
- NPDP产品经理证书(2019年04月),NPDP是IBM和华为的IPD的祖师爷。IPD学不到,NPDP还是可以学到的。...