通过函数能显著增强Makefile的功能。对于simple项目的Makefile,尽管使用了模式规则,但还是有一件比较麻烦的事情,就是要在Makefile中指明每一个项目源文件。下面介绍几个后期会使用到的函数,更多请参考《GUN Make》。 1.abspath函数 从命名就应该能够猜出它的作用。a Read More
变量的类别有递归扩展变量和简单扩展变量。只用一个“=”符号定义的变量被称为递归扩展变量(recursively expanded variable)。通过下面例子观察递归扩展变量的特点。 从结果来看,递归扩展变量的引用是递归的。 上例所示的Makefile,CFLAGS变量最后都会被展开为“-Ifo Read More
编写Makefile的第一步,不是一个猛子扎进去试着写一个规则并对之调试,而应该先采用面向依赖关系的思考方法勾勒出makefile要表达怎样的依赖关系,这一点尤为重要。通过不断地练习这种思考方法,才可能达到流畅地编写makefile的能力。 上例的一个依赖关系类图为: 表示simple可执行文件是通 Read More
在上一篇进行了汇编语言的编写后,这一节采用C语言来编写,毕竟C语言才是我们使用最多的语言。 本节要点: 1)用C语言方式点亮LED灯; 2)分析反汇编代码;了解函数调用栈,深入的分析代码; 3)编写C语言的库函数版本,方便以后开发; 首先贴出一段代码: start.s LED.c: 在传统的IDE开 Read More
先看将要用到的几条汇编代码: 1)LDR (load):读内存 LDR R0, 【R1】 假设R1的值是 X,读取地址 X 上的数据(4字节),保存在R0中 2)STR(store):写内存命令, STR R0, 【R1】 假设 R1的值是 X,把 R0 的值写到地址 X(4字节) 3)B:跳转 4 Read More
find 目的:查找符合条件的文件 1)在那些目录中查找 2)查找的内容 格式: find 目录名 选项 查找条件 举例: 1)find / work / 001_linux_ basic / dira / -name "test1.txt" 说明: a)/ work / 001_linux_bas Read More
文件的操作: touch:新建文件 touch 文件名 举例: touch file1 在当前目录新建名为file1的文件 注意: 1)同一目录无法创建同名的文件 2)linux的文件名是区分大小写的,如file1和File1是不同文件。 这一点跟windows不同。 mv(move的缩写):修改文 Read More
回顾一下常用命令: pwd : 显示当前所在的目录 ls : 显示当前目录下的文件 cd : 切换路径 cd . . : 返回到上一级路径 mkdir : 新建目录 rmdir : 删除目录 touch : 新建文件 cp :复制文件 rm :删除文件 cat : 将文件内容显示到终端 clear Read More
C++中所有的变量和函数都必须有类型 C语言中的默认类型在C++中是不合法的。 在C++中,int f( ); 和int f(void);具有相同的意义,都表示返回值为int 的无参函数。 在C中,int f( ); 表示返回值为int,可接受任意参数的函数; int f(void); 表示返回值为 Read More
1、C++基础 —— 一个简单的C++代码及面向过程和面向对象思想求圆的面积 2、C++基础 —— 程序设计方法的发展 3、C++基础 —— C语言和C++的关系 4、C++基础 —— C++对C的加强—namespace 5、C++基础—— register关键字 Read More