目录

一.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语言程序相关推荐

  1. Ubuntu中编写C语言程序

    Ubuntu中编写C语言程序 1.准备工作 1.1 安装GCC 2.使用GCC编写C语言程序 2.1 编写一个Hello World程序 2.2 编写一个主程序文件main1.c和子程序文件sub1. ...

  2. 虚拟机Ubuntu中编写C语言程序

    目录 一 实验目的 二 实验操作 一 实验目的 1. 在windows环境下通过虚拟机软件(比如Vmware.VirtualBox)安装Ubuntu 16.04/18.04 Desktop,并设置网络 ...

  3. ubuntu下创建c语言程序之hello world

    将要学习c语言了,先记录一下在ubuntu下,使用vim创建一个最基本的hello world程序: 打开终端,使用cd命令转到操作的目录,如我在home下的program files文件内创建, 就 ...

  4. Linux系统(Ubuntu)编写C语言程序

    1.在当前目录创建hello.c文件,命令vi hello.c(用到编辑器vim,Linux安装vim教程,参考博客Linux安装vim) 2.进入编辑模式(按下键盘"i") 3. ...

  5. Ubuntu系统中编写c语言程序教程

    目录 1.准备工作 1.1 安装GCC及必要软件包 2.使用GCC编写C语言程序 2.1 编写一个整型运算反回浮点型的程序 2.2 在windows系统下使用编译工具编译该程序 3.使用Makefil ...

  6. Ubuntu下使用gcc和makefile编写c语言程序

    文章目录 前言 一.gcc编写c语言程序 1.hello world的输出 2.简单程序的编译与运行 3.windows环境下的编译运行结果对比 二.makefile编写c语言程序 总结 前言 本文通 ...

  7. Ubuntu 下编写C程序

    Ubuntu 下编写C程序 一.编写C程序 二.编译C程序 三.make工具和Makefile文件 一.编写C程序 使用VIM编辑器编写程序,也可以使用vscode. 1.1.设置vim编辑器 设置v ...

  8. deepin终端编译c程序_大神支招 如何在Linux下运行C语言程序

    刚入门学习C语言程序的小伙伴比较常遇到的其中一个问题是:如何在Linux下运行C语言程序.今天针对这个热门问题,小编为大家准备了详细的教程! 小编先给大家普及一些关于C语言程序的基本常识:首先大家要清 ...

  9. Linux GCC简明教程(编写c语言程序)

    市面上常见的 Linux 都是发行版本,典型的 Linux 发行版包含了 Linux 内核.桌面环境(例如 GNOME.KDE.Unity 等)和各种常用的必备工具(例如 Shell.gcc.VIM. ...

最新文章

  1. [hadoop源码阅读][9]-mapreduce-概论
  2. 【swjtu】数字电路实验7_8_电子琴设计
  3. 【mysql】SQL常用指令
  4. Hive Serde、Beeline、JDBC
  5. 中运量71路线路图_浦东临港的中运量呼之欲出:临港地区已经成为上海建设的热土...
  6. php swoole实现定时任务,Swoole实现任务定时自动化调度详解,来学习下
  7. 【每周CV论文】初学实例分割需要读哪些文章?
  8. Java删除指定值结点[递归]图解
  9. Docker在测试领域的应用
  10. python去除列表中的重复元素,简单易理解,超详细解答,步骤分析
  11. 图解电动汽车:电动汽车关键技术
  12. Intel SGX远程认证【SGX手册截图】
  13. 【蓝桥杯】~C语言数组排序
  14. 审车的时候环保怎样安全通过_审车环保3次不过怎么办,年检尾气不合格怎么办...
  15. 计算机主机闪烁显示器黑屏,显示器黑屏一闪一闪的怎么回事_显示器黑屏一闪一闪解决教程 - 系统家园...
  16. mysql rebuild index_MSSQL Rebuild(重建)索引
  17. DNSPod十问侯家文:如何为中小企业的网络安全保驾护航?
  18. js中的contains()方法记录
  19. 拼多多退款怎么设置?万顿思教育
  20. 查看Linux服务器内存大小,cpu个数,型号

热门文章

  1. JAVA中接口存在的意义
  2. 解密车厂押注车载人机交互背后:更丰富的形式,更激烈的战场
  3. 传奇服务器需要什么配置?传奇服务器租用价格表
  4. 现阶段为什么国内程序员无法很好的参与到开源社区?
  5. 基于Matlab的压力控制论文,基于Matlab \ Simulink的气体辅助注射压力控制系统的建模与仿真...
  6. 迅搜(xunsearch)的安装使用以及操作类分享
  7. 智慧电厂拥抱“双碳”,空冷岛设施数字化转型
  8. kmeans及模型评估指标_如何评估聚类模型?兰德指数、轮廓系数、Calinski Harabaz指数...
  9. 推荐一个有用的Excel操作类库 LinqToExcel
  10. 质量保证和质量控制(QA / QC),你们知道区别在哪里吗?