摘要: 在尝试使用bochs时,会有如下提示:bochs-bin:symbollookuperror:/usr/lib/bochs/plugins/libbx_x.so:undefinedsymbol:XpmCreatePixmapFromData这个问题本来以前解决过,结果忘了。上网一搜,找到了答案:http://overflowedstack.wordpress.com/2012/05/07/solve-bochs-crash-on-start-problem-under-ubuntu-12-04/作者指出,我们换一种显示的方案就可以了。首先按照bochs-sdl,用apt-get可以安装。在我们 阅读全文
posted @ 2013-02-04 23:08 Mr.Shadow 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 每个目标里都可以运行shell命令,每个命令前以[Tab]开头,它不能是空格。通常情况下,你执行的命令会在输出中显示出来,比如:output: echo hello运行make会有如下结果:$ make outputecho hellohello有时我们不希望把执行的命令显示出来,我们可以在命令前加上@符来隐藏这个命令:output: @echo hello$ make output hellomake命令本身也带有选项来隐藏所有命令的输出,它是-s或--silent。与它相反的是-n或--just-print,它们只显示命令却不执行它们。注意makefile里的命令是一行一行执行的,而且各行 阅读全文
posted @ 2013-02-04 11:17 Mr.Shadow 阅读(403) 评论(0) 推荐(0) 编辑
摘要: $(NAME)和${NAME}表示一个变量。变量名是大小写敏感的。$$表示“$”字符本身。我们可以通过=号把一个变量(或常量、或变量和常量的组合)赋给别的变量。同样我们也可以用:=来给变量赋值。它们的区别在于=号会使用之后定义的变量的值,而:=号不会取之后定义的变量的值。比如:X1=aX2=$(X1)+$(X4) #X2=a+zX3:=$(X1)+$(X4) #X3=a+X4=z另一个赋值符是?=。它表示如果变量没有定义过则赋值,否则就不赋值。还有一个赋值符是+=,可以将变量的现有值和右值合并。define也可以用来定义变量:define S7uvw# S7=uvwendef其实define的 阅读全文
posted @ 2013-02-04 11:16 Mr.Shadow 阅读(439) 评论(0) 推荐(0) 编辑
摘要: if分支结构为:<if>...[else...]endif其中<if>有四种关键字:ifeq判断相等,它的用法有:ifeq (<arg1>, <arg2> )ifeq '<arg1>' '<arg2>'ifeq "<arg1>" "<arg2>"ifeq "<arg1>" '<arg2>'ifeq '<arg1>' "<arg 阅读全文
posted @ 2013-02-04 11:15 Mr.Shadow 阅读(779) 评论(0) 推荐(0) 编辑
摘要: 函数的调用语法为:$(<function> <arguments> )或${<function> <arguments>}函数名与参数间以空格分隔,参数之间以逗号分隔。字符串处理的函数有:$(subst <from>,<to>,<text>)把<text>里的<from>替换为<to>,返回替换后的字符串。$(patsubst <pattern>,<replacement>,<text>)把<text>里匹配<patter 阅读全文
posted @ 2013-02-04 11:14 Mr.Shadow 阅读(331) 评论(0) 推荐(0) 编辑
摘要: make -f <filename>命令可以指定makefile的文件名,而不是默认的makefile、Makefile或GNUmakefile。makefile里的include <filename>指令可以引入别的文件。注意文件名不能用字符串包围,如:include header.mk可以引入当前路径下的header.mk,但是include "header.mk"会出现找不到文件的错误。include也可以同时引入多个文件,比如:include header.mk h2.mk *.mkVPATH变量可以指定源文件的目录。只需要两行:VPATH= 阅读全文
posted @ 2013-02-04 11:13 Mr.Shadow 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 下面是所有的自动化变量及其说明:$@表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于目标中模式定义的集合。$%仅当目标是函数库文件中,表示规则中的目标成员名。例如,如果一个目标是"foo.a(bar.o)",那么,"$%"就是"bar.o","$@"就是"foo.a"。如果目标不是函数库文件(Unix下是[.a],Windows 下是[.lib]),那么,其值为空。$<依赖目标中的第一个目标名字。如果依赖目标是以模式(即"%&qu 阅读全文
posted @ 2013-02-04 11:10 Mr.Shadow 阅读(736) 评论(0) 推荐(0) 编辑
摘要: ls -l i386.pdf | grep pdf | cut -c49-52 结果输出为i386 详见:man cuttmp.s: boot/bootsect.s tools/system (echo -n ''SYSSIZE = (''; ls -l tools/system | grep system | cut -c23-31 | tr \012'''; echo '' +15)/16 ") > tmp.s (解释详见linux内核完全注释) cat /boot/bootsect.s >> 阅读全文
posted @ 2013-02-04 10:28 Mr.Shadow 阅读(194) 评论(0) 推荐(0) 编辑