ubuntu下编写C语言程序
目录
一.gcc编译C语言程序
二.makefile编译C语言程序
三.编译过程中遇到的问题
题目:编写一个主程序文件main1.c和一个子程序文件sub1.c,有如下要求:子程序sub1.c包含一个算术运算函数float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c定义并赋值两整型变量,然后调用函数x2x,将x2x的返回结果printf出来。(1)请在ubuntu系统中用gcc命令行方式编译主程序main1.c并运行;(2)请在windows系统下用你熟悉的编译工具编译主程序main1.c并运行;(3)在ubuntu系统下用makefile方式编译主程序。
一.gcc编译c语言程序
1.用vim创建main1.c文件:
2.进入vim编辑器然后输入"i"进入编辑模式,main1.c主程序的代码内容如下:
3.主程序的代码完成后按Esc键返回普通模式,并在命令行中输入“:wq"并回车,这样能够退出并保存主程序的vim编辑界面
4.用vim创建sub1.c文件:
5.进入vim编辑器然后输入"i"进入编辑模式,sub1.c子程序的代码内容如下:
6.子程序的代码完成后按Esc键返回普通模式,并在命令行中输入“:wq"并回车,这样能够退出并保存子程序的vim编辑界面
7.使用gcc转化为可执行文件:
注意:gcc 编译文件的具体过程是:源文(.c)---->目标文件(.o)---->可执行文件
8.运行生成的main1可执行文件:
9.运行结果如下所示:
10.windows下用IDE执行相同的C程序,结果如下所示:
二.makefile编译C语言程序
1.用vim创建makefile文件
2.进入vim编辑器然后输入"i"进入编辑模式,makefile程序的代码内容如下:
3.同样地,按Esc退出编辑模式,并在命令行处输入":wq"再回车以保存并退出vim编辑界面
4.输入make:
5.然后会得到makefile的运行结果:
6.再输入makefile中all的可执行文件:
7.最后得到程序的运行结果:
三.编译过程中遇到的问题
原因:分隔符要使用Tab键,而不是自行输入空格
原因:命名的all文件与现目录中的文件重名
解决方法:在makefile文件中加入“.PHONY:all"
3
原因:重复定义了某一函数,本例中显示的是:“x2x"函数
通过搜集一些资料,看到有如下解释可以帮助我们很好地理解:
“一般在.h文件中应以一个变量或函数声明时,在其他文件中只要包含了这个.h文件,编译的时候就会独立被编译器解释,然后每个.c文件会产生独立的标识符和符号表,所以上述代码在单独编译的时候不会报错,语法是合法的。但是,最后在编译器链接的时候,就会将工程中的所有符号整合在一起,由于文件中有重复的变量或函数,于是就会出现重复定义的错误,系统给你的提示就是:multiple definiton of ‘xx’”
解决方法:在主程序中不再引用子程序,而是直接定义在子程序中被引用的方法即可
ubuntu下编写C语言程序相关推荐
- Ubuntu中编写C语言程序
Ubuntu中编写C语言程序 1.准备工作 1.1 安装GCC 2.使用GCC编写C语言程序 2.1 编写一个Hello World程序 2.2 编写一个主程序文件main1.c和子程序文件sub1. ...
- 虚拟机Ubuntu中编写C语言程序
目录 一 实验目的 二 实验操作 一 实验目的 1. 在windows环境下通过虚拟机软件(比如Vmware.VirtualBox)安装Ubuntu 16.04/18.04 Desktop,并设置网络 ...
- ubuntu下创建c语言程序之hello world
将要学习c语言了,先记录一下在ubuntu下,使用vim创建一个最基本的hello world程序: 打开终端,使用cd命令转到操作的目录,如我在home下的program files文件内创建, 就 ...
- Linux系统(Ubuntu)编写C语言程序
1.在当前目录创建hello.c文件,命令vi hello.c(用到编辑器vim,Linux安装vim教程,参考博客Linux安装vim) 2.进入编辑模式(按下键盘"i") 3. ...
- Ubuntu系统中编写c语言程序教程
目录 1.准备工作 1.1 安装GCC及必要软件包 2.使用GCC编写C语言程序 2.1 编写一个整型运算反回浮点型的程序 2.2 在windows系统下使用编译工具编译该程序 3.使用Makefil ...
- Ubuntu下使用gcc和makefile编写c语言程序
文章目录 前言 一.gcc编写c语言程序 1.hello world的输出 2.简单程序的编译与运行 3.windows环境下的编译运行结果对比 二.makefile编写c语言程序 总结 前言 本文通 ...
- Ubuntu 下编写C程序
Ubuntu 下编写C程序 一.编写C程序 二.编译C程序 三.make工具和Makefile文件 一.编写C程序 使用VIM编辑器编写程序,也可以使用vscode. 1.1.设置vim编辑器 设置v ...
- deepin终端编译c程序_大神支招 如何在Linux下运行C语言程序
刚入门学习C语言程序的小伙伴比较常遇到的其中一个问题是:如何在Linux下运行C语言程序.今天针对这个热门问题,小编为大家准备了详细的教程! 小编先给大家普及一些关于C语言程序的基本常识:首先大家要清 ...
- Linux GCC简明教程(编写c语言程序)
市面上常见的 Linux 都是发行版本,典型的 Linux 发行版包含了 Linux 内核.桌面环境(例如 GNOME.KDE.Unity 等)和各种常用的必备工具(例如 Shell.gcc.VIM. ...
最新文章
- [hadoop源码阅读][9]-mapreduce-概论
- 【swjtu】数字电路实验7_8_电子琴设计
- 【mysql】SQL常用指令
- Hive Serde、Beeline、JDBC
- 中运量71路线路图_浦东临港的中运量呼之欲出:临港地区已经成为上海建设的热土...
- php swoole实现定时任务,Swoole实现任务定时自动化调度详解,来学习下
- 【每周CV论文】初学实例分割需要读哪些文章?
- Java删除指定值结点[递归]图解
- Docker在测试领域的应用
- python去除列表中的重复元素,简单易理解,超详细解答,步骤分析
- 图解电动汽车:电动汽车关键技术
- Intel SGX远程认证【SGX手册截图】
- 【蓝桥杯】~C语言数组排序
- 审车的时候环保怎样安全通过_审车环保3次不过怎么办,年检尾气不合格怎么办...
- 计算机主机闪烁显示器黑屏,显示器黑屏一闪一闪的怎么回事_显示器黑屏一闪一闪解决教程 - 系统家园...
- mysql rebuild index_MSSQL Rebuild(重建)索引
- DNSPod十问侯家文:如何为中小企业的网络安全保驾护航?
- js中的contains()方法记录
- 拼多多退款怎么设置?万顿思教育
- 查看Linux服务器内存大小,cpu个数,型号
热门文章
- JAVA中接口存在的意义
- 解密车厂押注车载人机交互背后:更丰富的形式,更激烈的战场
- 传奇服务器需要什么配置?传奇服务器租用价格表
- 现阶段为什么国内程序员无法很好的参与到开源社区?
- 基于Matlab的压力控制论文,基于Matlab \ Simulink的气体辅助注射压力控制系统的建模与仿真...
- 迅搜(xunsearch)的安装使用以及操作类分享
- 智慧电厂拥抱“双碳”,空冷岛设施数字化转型
- kmeans及模型评估指标_如何评估聚类模型?兰德指数、轮廓系数、Calinski Harabaz指数...
- 推荐一个有用的Excel操作类库 LinqToExcel
- 质量保证和质量控制(QA / QC),你们知道区别在哪里吗?