本文共 2495 字,大约阅读时间需要 8 分钟。
摘要:在Ubuntu下进行gcc编译以及Makefile文件建立,并与Windows环境下进行对比学习。
相关知识:Ubuntu,gcc,vim,Makefile,Windows环境下的vc++ 简要概括:请大家在仿照此实例之前在Ubuntu中下载或更新gcc,vim,Makefile,如对此有疑问请移步其他论坛进行相关学习。
先进行大家比较熟悉的Windows环境下的编译Hello,World!程序,大家先来练练手。 打开vc++6.0 输入以下代码。
#include//预处理int main() //main主函数{ printf("Hello World!\n"); //打印Hello,World!至屏幕(\n为换行符) return 0; //返回值0}
下图是编译成功的图
这里我将用vc++工程进行编写头文件以及调用。(如有对vc++建立工程有疑问的请点击此链接–该链接为百度经验)
linuxx.h库函数代码如下#ifndef linuxx //声明头文件 #define linuxx //宏定义#include//预处理#include //预处理float sumfloat(float,float); //声明sumfloat函数 #endif //结束
这里这样编写是为了避免重复定义。
linuxx.c代码如下#include"linuxx.h" //使用" "的意思是在此目录下搜索头文件float sumfloat(float a,float b) //定义sumfloat函数{ a+=b; //a=a+b return a; //返回a的值}
main.c的代码如下
#include"linuxx.h" //头文件为linuxx.hvoid main(){ //主函数 float a=12,b=11; //定义两个浮点型a,b并进行赋值 float x; x=sumfloat(a,b); //调用sumfloat函数并将值返回给x printf("%f\n",x); //打印x的值至屏幕}
具体工程建立如下图:
在进入Ubuntu之后,在命令行界面进行创建test文件,之后进入test文件(由于是测试学习,所以请大家尽量建立指定文件夹进行保存自己的代码,这样方便之后的学习与清理文件)并输入:
vim Hello.c
Hello.c代码如下:
#include//预处理int main() //main主函数{ printf("Hello World!\n"); //打印Hello,World!至屏幕(\n为换行符) return 0; //返回值0}
输入:
gcc Hello.c
生成a.out文件,之后输入:
./a.out
运行结果如下:
linux.h代码如下
#ifndef linux //声明头文件 #define linux //宏定义#include//预处理#include //预处理float sumfloat(float,float); //声明sumfloat函数 #endif
linux.c代码如下:
#include"linux.h" //使用" "的意思是在此目录下搜索头文件float sumfloat(float a,float b) //定义sumfloat函数{ a+=b; //a=a+b return a; //返回a的值}
main.c代码如下:
#include"linux.h" //头文件为linuxx.hvoid main(){ //主函数 float a=12,b=11; //定义两个浮点型a,b并进行赋值 float x; x=sumfloat(a,b); //调用sumfloat函数并将值返回给x printf("%f\n",x); //打印x的值至屏幕}
代码输入之后进行gcc编译,输入
gcc -c linux.c
gcc -c即是将linux.c 编译成二进制目标代码,文件后缀为.o
在生成linux.o文件之后,输入:
gcc linux.o main.c -o sumfloat
gcc -o 是将linux.o与main.c链接成最终可执行文件sumfloat.exe,
之后输入:
./sumfloat
得出结果下图所示:
但进行最后编译的时候出现警告,网上搜出的原因是未在头文件以及主函数中声明调用函数,具体警告内容如下:
目前由于时间问题没有解决,望大佬告知。创建makefile文件,输入:
vim makefile
makefile代码如下
sumfloat:main.c gcc linux,o mainc.c -o sumfloat
之后输入:
make
同样有以上编译问题
最后输入:./sumfloat
得出结果为:
此次通过对比学习,使我更加深刻的认识vc与Ubuntu下的c语言编译以及初步上手了makefile的编程,同时也掌握了一些编程知识。其中遇到很多问题,谢谢网上好心博客主以及我的同学们,如果以上博客有侵,则请联系我。谢谢各位阅读并指出错误。
转载地址:http://ryrzi.baihongyu.com/