简单Makefile

一个简单的Makefile,可以直接Copy使用; 一、用字符常量简化 Makefile文件: #定义常量 objects =main.o fun1.o #中间文件 cc=gcc #编译器 prom=main #输出文件 prom: $(objects) $(cc) $(objects) -o $(prom) main.o: main.c fun1.h $(cc) -c main.c -o main.o @echo 正在编译main文件 #前面加@避免重复输出信息 fun1.o: fun1.c fun1.h $(cc) -c fun1.c -o fun1.o @echo 正在编译其他文件 .PHONY: clean clean: -rm $(prom) $(objects) 文件夹结构: 二、更简化的写法 Makefile文件: obj=main.o fun1.o cc=gcc prom=main deps=fun1.h $(prom):$(obj) $(cc) -o $(prom) $(obj) %.o:%.c $(deps) $(cc) -c $< -o $@ 在这里,我们用到了几个特殊的宏。首先是 %.o:%.c,这是一个模式规则,表示所有的 .o 目标都依赖于与它同名的 .c 文件(当然还有 deps 中列出的头文件)。再来就是命令部分的 $< 和 $@,其中 $< 代表的是依赖关系表中的第一项(如果我们想引用的是整个关系表,那么就应该使用 $^),具体到我们这里就是 %.c。 而 $@ 代表的是当前语句的目标,即 %.o。这样一来,make 命令就会自动将所有的 .c 源文件编译成同名的 .o 文件。不用我们一项一项去指定了。整个代码自然简洁了许多。 ...

July 7, 2022 · 1 min · Rancho

基本的正则表达式

基本的正则表达式,记录一下,方便之后查询; 基本的正则表达式: 在线练习 1. 基本匹配 正则表达式其实就是在执行搜索时的格式,它由一些字母和数字组合而成。 例如:一个正则表达式 the,它表示一个规则:由字母t开始,接着是h,再接着是e。 "the" => The fat cat sat on the mat. 正则表达式123匹配字符串123。它逐个字符的与输入的正则表达式做比较。 正则表达式是大小写敏感的,所以The不会匹配the。 "The" => The fat cat sat on the mat. 2. 元字符 正则表达式主要依赖于元字符。 元字符不代表他们本身的字面意思,他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊的意思。以下是一些元字符的介绍: 元字符描述.句号匹配任意单个字符除了换行符。[ ]字符种类。匹配方括号内的任意字符。否定的字符种类。匹配除了方括号里的任意字符匹配>=0 个重复的在号之前的字符。+匹配>=1 个重复的+号前的字符。?标记?之前的字符为可选.{n,m}匹配 num 个大括号之间的字符 (n <= num <= m).(xyz)字符集,匹配与 xyz 完全相等的字符串.|或运算符,匹配符号前或后的字符.\转义字符,用于匹配一些保留的字符 { } . * + ? ^ $ \ |^从开始行开始匹配.$从末端开始匹配. 2.1 点运算符 . .是元字符中最简单的例子。 .匹配任意单个字符,但不匹配换行符。 例如,表达式.ar匹配一个任意字符后面跟着是a和r的字符串。 ".ar" => The car parked in the garage. 2.2 字符集 字符集也叫做字符类。 方括号用来指定一个字符集。 在方括号中使用连字符来指定字符集的范围。 在方括号中的字符集不关心顺序。 例如,表达式[Tt]he 匹配 the 和 The。 ...

June 5, 2022 · 4 min · Rancho

Linux_grep命令使用

最近在学Linux,发现grep命令很常用,所以记录一下,方便之后查询; grep命令常见用法 1、字符串搜索: 在文件中搜索一个单词,命令会返回一个包含 “match_pattern” 的文本行: grep match_pattern file_name grep "match_pattern" file_name 例子: 2、在多个文件中查找字符串: grep "match_pattern" file_1 file_2 file_3 ... 例子: 3、输出除之外的所有行 -v 选项: grep -v "match_pattern" file_name 例子: 4、标记匹配颜色 —color=auto 选项: grep "match_pattern" file_name --color=auto 例子: 5、使用正则表达式: 使用正则表达式 -E 选项: grep -E "[1-9]+" # 或 egrep "[1-9]+" 使用正则表达式 -P 选项: grep -P "(\d{3}\-){2}\d{4}" file_name 只输出文件中匹配到的部分 -o 选项: echo this is a test line. | grep -o -E "[a-z]+\." line. echo this is a test line. | egrep -o "[a-z]+\." line. 6、统计文件或者文本中包含匹配字符串的行数: -c 选项: ...

June 5, 2022 · 3 min · Rancho

构建荔枝派zero完整系统以及运行QT程序

荔枝派使用记录;

August 17, 2021 · 1 min · Rancho