ubuntu下编写C语言程序

   日期:2020-10-03     浏览:103    评论:0    
核心提示:目录一.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)请在win

目录

一.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’”

解决方法:在主程序中不再引用子程序,而是直接定义在子程序中被引用的方法即可

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服