什么是低代码?低代码开发平台靠谱吗?低代码平台优缺点
757
2022-05-28
任务1:静态库与动态库
[root@wbyq test]# arm-linux-gcc 123.c -o app_1
[root@wbyq test]# arm-linux-gcc -static 123.c -o app_2
Linux下库文件存放的位置: /lib (存放的是动态库)
.so属于动态库, .a属于静态库
动态库称为共享库:gcc 123.c -o app
共享库:程序在运行的时候去调用函数(载入函数)。
静态库:相关的函数在编译的时候就已经拷贝到目标中。
任务2:Makefile
Makefile :用于编写程序的编译规则。 make命令用于执行Makefile文件。
make常用的选项参数:
-n :输出命令的执行过程,不执行名称
-s :隐藏命令本身。 在命令前面加上@符号,可以隐藏命令本身。
$(shell pwd)
CC :特殊变量,用于存放编译器。
练习:
1. Makefile自动化编译
只是创建3个目录,每个目录下各有一个.c一个.h
在顶层目录下创建一个Makefile文件,实现自动化编译。
CC=gcc VPATH=./abc app:print.o main.o sum.o $(CC) $^ -o $@ %.o:%.c $(CC) $< -o $@ -c clean: rm ./*.o app -rf
2. Makefile自动化编译
需要创建3个目录,每个目录下各有一个.c一个.h,一个Makefile文件
在顶层目录下创建一个Makefile文件,实现自动化编译。
特殊符号:
冒号用法: <目标文件>:<依赖文件1> <依赖文件2> ….
OBJECT=main.o print.o sum.o CC=gcc VPATH=main:sum:print CFLAGS=-Imain -Isum -Iprint app:$(OBJECT) $(CC) $^ -o $@
include 关键字
用法: include <路径或者具体的文件>
任务3:Shell脚本语言
Linux下常用的脚本语言。
变量、数组、for、while、函数、运算符、if、……..
[root@wbyq /]# ls /bin/sh -l
lrwxrwxrwx. 1 root root 4 12月 27 2016 /bin/sh -> bash
变量定义使用
#!/bin/bash
ABC=12345
echo "ABC=$ABC"
echo "ABC=${ABC}"
Shell脚本传递参数 类似于C语言的argv argc
#!/bin/bash
echo "cnt=$#"
echo "[0]=
echo "[0]=$0"
"echo "[1]="
echo "[2]="
echo "[3]="
if语句语法规则
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
echo "123"
else
echo "456"
fi
计算字符串长度
#!/bin/bash
string="abcd"
echo ${#string} #输出 4
数组语法
#!/bin/bash
buff=(1 2 3 4 5 6 7 8 9)
buff[0]=88
buff[1]=99
buff[100]=100
buff[88]=55
echo "buff[0]=${buff[0]}"
echo "buff[1]=${buff[1]}"
echo "buff[2]=${buff[2]}"
echo "buff[100]=${buff[100]}"
echo用法示例
#!/bin/bash
DATA=12345
echo "DATA=${DATA}"
printf语句格式
#!/bin/bash
printf "%d\n" 1234
printf "%s\n" "45678"
从键盘上读取数据
#!/bin/bash
echo -n "输入数据:" #参数-n 的作用是不换行, echo 默认是换行
read data #从键盘输入
echo "你输入的数据为: $data" #显示信息
知识点总结:
#!/bin/bash #if使用方式1 if [ 1 -eq 2 -o 1 -lt 5 ] then echo "条件为真" else echo "条件为假" fi #if使用方式2 if((1==2 || 1==1)) then echo "条件为真" else echo "条件为假" fi #for循环的使用方式1 for i in 1 2 3 4 5 do echo "i=$i" done #for循环的使用方式2 for((i=0;i<5;i++)) do echo "i=$i" done #while循环的使用方式1 i=0 while [ $i -lt 5 ] do #i=`expr $i + 1` let i=i+1+34-4 #算术运算 echo "i=$i" done #while循环的使用方式2 i=10 while((i<15)) do ((i++)) echo "i=$i" done #数组当做函数的形参进行传递 func() { echo ${buff[0]} echo ${buff[1]} echo ${buff[2]} echo ${buff[3]} } buff[0]=a buff[1]=b buff[2]=c buff[3]=d func ${buff[*]} #数组的传递 #获取命令的执行状态 #方式1 (获取返回值) data=`ls -l` echo "data1=$data" #方式2 (获取命令执行状态) ls -l echo "data2=$?"
Shell脚本练习:
1. 从键盘上输入年份,判断平年闰年。
2. 输出9*9乘法口诀表
3. 冒泡排序。
#!/bin/bash echo -n "请输入排序数据的数量:" read max_cnt echo -n "请输入数据(输入一个数据按下回车键)" cnt=0 while [ $cnt -lt $max_cnt ] do read buff[$cnt] #((cnt++)) cnt=`expr $cnt + 1` done echo "数组的数据=${buff[*]}" #实现冒泡排序 max_cnt=`expr $max_cnt - 1` i=0 j=0 tmp=0 while [ $i -lt $max_cnt ] do while [ $j -lt $max_cnt ] do if [ ${buff[$j]} -lt ${buff[`expr $j + 1`]} ] then tmp=${buff[$j]} buff[$j]=${buff[`expr $j + 1`]} buff[`expr $j + 1`]=$tmp fi j=`expr $j + 1` done j=0 i=`expr $i + 1` done echo "排序之后的数据=${buff[*]}"
Linux Makefile Shell
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。