查看gcc版本:gcc -v。 实验共有5个文件:main.c,input.c,calcu.c,input.h,calcu.h。 实验完成的功能是获取键盘输入的两个数,打印它们的和。input_int函数的参数是两个int类型指针变量,调用的时候需要定义两个int类型数字,去它们的地址作为函数输入参数。输入命令“gcc main.c calcu.c input.c -o main”进行编译和链接,再使用“./main”执行即可,但这样的缺点是gcc命令要输入所有c文件名,且修改一个文件也要全部重新编译。 Makefile特性: 操作步骤: 规则格式: Makefile文件内容规则分析: 格式:%.o : %.c 自动化变量: 上面讲的模式规则中,每一次对模式规则进行解析的时候都会是不同的目标和依赖文件,而命令只有一行。使用自动化变量可以通过一行命令来从不同的依赖文件中生成对应的目标。所谓自动化变量就是它会把模式中所定义的一系列的文件自动的挨个取出。自动化变量只应该出现在规则的命令中,常用的自动化变量如下表: 语法格式: 4个关键字: ifeq、ifneq、ifdef 和 ifndef。 简介: shell脚本是纯文本文件,一行一行的执行,shell脚本扩展名为.sh,其第一行必须是 “#!/bin/bash”。 交互式shell脚本(实验一): 下图的例子中需要输入文件名,若文件存在打印“||”左边的,不存在则打印“||”右边的内容。 条件判断(实验一): 参考正点原子嵌入式linux开发指南目录
1.GCC编译器
1.1.VIM设置
1.2.编译代码
编译命令:gcc xxx.c -o xxx
主要选项:
编译流程: 预处理、编译、汇编和链接。预处理就是展开所有的头文件、替换程序中的宏、解析条件编译并添加到文件中。编译是将经过预编译处理的代码编译成汇编代码,也就是我们常说的程序编译。汇编就是将汇编语言文件编译成二进制目标文件。链接就
是将汇编出来的多个二进制目标问价链接在一起,形成最终的可执行文件,链接的时候还会涉及到静态库和动态库等问题。可以使用gcc命令生成可执行文件,并没有先将 c 文件编译成.o文件再链接在一起。2.Makefile基础
2.1.实验程序
//main.c #include <stdio.h> #include "input.h" #include "calcu.h" int main(int argc, char *argv[]) { int a, b, num; input_int(&a, &b); num = calcu(a, b); printf("%d + %d = %drn", a, b, num); }
//input.c #include <stdio.h> #include "input.h" void input_int(int *a, int *b) { printf("input two num:"); scanf("%d %d", a, b); printf("rn"); }
//calcu.c #include "calcu.h" int calcu(int a, int b) { return (a + b); }
//input.h #ifndef _INPUT_H #define _INPUT_H void input_int(int *a, int *b); #endif
//calcu.h #ifndef _CALCU_H #define _CALCU_H int calcu(int a, int b); #endif
2.2.Makefile概念和基本操作步骤
2.3.Makefile规则格式
目标…:依赖文件集合……
命令 1
命令 2……
make命令会为Makefile中的每个以TAB开始的命令创建一个Shell进程去执行。
2.4.Makefile变量
2.5.Makefile模式规则&自动化变量
(Tab)命令
通过模式规则可以使用一条规则将所有的.c文件编译为对应的.o文件。目标中的“%”表示对文件名的匹配,“%”表示长度任意的非空字符串,比如“%.c”就是所有的以.c 结尾的文件。“a.%.c”表示以 a.开头,以.c 结束的所有文件。
使用规则模式和自动化变量后,Makefile可以修改为:
2.6.Makefile条件判断
<条件关键字> <条件为真时执行的语句> endif //以及 <条件关键字> <条件为真时执行的语句> else <条件为假时执行的语句> endif
3.Shall编程
3.1.Shall脚本基础
编写好shell脚本后运行的时候发现权限不够,使用“ls xxx.sh -l”发现脚本文件没有可执行权限,因此使用chmod命令将脚本文件的权限全部打开,就可以正常执行了。
shell脚本数值计算(实验二): shell仅支持整形,数值计算使用$((表达式))。注意total后不能加等于号。
test命令(实验三):
默认变量(实验四):
$0~ $n:表示shell脚本参数,包括shell脚本命令本身(本身为$0)。
$#:#表示最后一个参数的标号。
$@:表示$1,$2,$3…
3.2.Shall脚本条件判断&函数&循环
case语句(实验二):
函数调用(实验三):
函数传参(实验四):
while do done循环(实验五): 条件成立时一直循环,实验中若输入不为“close”则一直循环。
until do done循环(实验六): 条件不成立时循环,条件成立退出循环。
for循环(实验七):
for循环处理数据(实验八):
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算