make命令
作用
用法
make [flags] [macro] [ definitions] [targets]
(1)flags选项及其含义如下。
-f file:指定file文件为描述文件,如果file参数为"-"符,则描述文件指向标准输入。如果没有"-f"参数,系统将默认当前目录下名为makefile或者名为Makefile的文件为描述文件。如果要用其他文件作为makefile文件,则可用以下make命令选项来指定。
$ make -f filename
-i:忽略命令执行返回的出错信息。
-s:沉默模式,在执行之前不输出相应的命令行信息。
-r:禁止使用build-in规则。
-n:非执行模式,输出所有执行命令,但并不执行。
-t:更新目标文件。
-q:make操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息。
-p:输出所有宏定义和目标文件描述。
-d:Debug模式,输出有关文件和检测时间的详细信息。
-c di:在读取makefile 之前改变到指定的目录dir。
-I dir:包含其他makefile文件时,利用该选项指定搜索目录。
-h:help文挡,显示所有的make选项。
-w:在处理makefile之前和之后,都显示工作目录。
(2)宏定义有两种方式。一种是在makefile文件中定义宏,另一种是使用make命令时直接在命令行下输入宏定义(此时的宏如果与makefile文件中的宏同名,它将替代makefile文件中的宏)。
在makefile文件中引用宏时只需在变量前加$符号,如果变量名的长度超过一个字符,在引用时就必须加圆括号"()"。下面都是有效的宏引用:
$(CFLAGS)
$Z
$(Z)
其中后两个引用是一样的。以下是宏定义变量的实例。
# Define a macro for the object files
OBJECTS= filea.o fileb.o filec.o //定义"OBJECTS"变量
# Define a macro for the library file
LIBES= -LS //定义"LIBES"变量
# use macros rewrite makefile
prog: $(OBJECTS) //引用"OBJECTS"变量
cc $(OBJECTS) $(LIBES) -o prog //引用"OBJECTS"和"LIBES"变量
……
如果执行不带参数的make命令,将调用GCC连接3个目标文件和库文件LS生成可执行文件prog;如果在make命令后带有新的宏定义:
make "LIBES= -LL -LS"
则命令行后面的宏定义将覆盖makefile文件中的宏定义。此时若LL也是库文件,make命令将连接3个目标文件以及LS和LL两个库文件。
(3)target参数用来指定make命令要编译的目标文件,并且允许同时定义编译多个。操作时将按照从左到右的顺序依次编译各目标文件。如果命令行中没有指定目标文件,则系统默认将target指向描述文件中的第一个目标文件。
一般makefile文件有几个预设的目标可供使用,对应有以下几个命令。
make all:编译所有的目标。或只输入make,此时会编译源码,然后连接,并且产生可执行文件。
make clean:清除之前所编译的可执行文件及目的文件(object file, *.o)。
make distclean:除了清除可执行文件和目的文件外,同时把Makefile文件也清除掉。
make install:将程序安装至系统中。如果源代码编译无误,且执行结果正确,便可以把程序安装至系统预设的执行文件存放路径。如果用bin_PROGRAMS 巨集,程序会被安装致电目录/usr/local/bin。
make dist:将程式和相关的文件包装成一个压缩文件以供发布。执行完后在当前目录下会产生一个以PACKAGEVERSION.tar.gz 为名称的文件。
原理及其他:
partitionmanager(分区软件)
minicom
minicom介绍
minicom使用
更多的参数,参见"man minicom"的输出。
-s
设置。 root 使用此选项在/etc/minirc.dfl中编辑系统范围的缺省值。使用此参数后,minicom 将 不 进行初始化, 而是直接进入配置菜单。如果因为你的系统被改变,或者第一次运行minicom时,minicom不能启动,这个参数就会很有用。对于多数系统,已经内定了比较合适的缺省值。
-o
不进行初始化。minicom 将跳过初始化代码。如果你未复位(reset)就退出了minicom,又想重启一次会话(session),那么用这个选项就比较爽(不会再有错误提示:modem is locked ---- 注)。但是也有潜在的危险:由于未对lock文件等进行检查,因此一般用户可能会与uucp之类的东东发生冲突......也许以后这个参数会被去掉。现在姑且假定,使用modem的用户对自己的行为足够负责。
-m
用Meta或Alt键重载命令键。在1.80版中这是缺省值,也可以在minicom 菜单中配置这个选项。不过若你一直使用不同的终端,其中有些没有Meta或Alt键,那么方便的做法还是把缺省的命令键设置为Ctrl-A,当你有了支持 Meta或Alt键的键盘时再使用此选项。Minicom假定你的Meta键发送ESC前缀,而不是设置字符最高位的那一种(见下)。
-M
跟“-m”一样,但是假定你的Meta键设置字符高端的第八位(发送128+字符代码)。
-z
使用终端状态行。仅当终端支持,并且在其termcap或terminfo数据库入口中有相关信息时才可用。
-l
逐字翻译 高位被置位的字符。使用此标志, minicom将不再尝试将IBM行字符翻译为ASCII码,而是将其直接传送。许多PC-Unix克隆不经翻译也能正确显示它们(Linux使用专门的模式:Coherent和Sco)。
-w
在启动的时候就自动换行,这样启动之后不用运行<C-a> w进行设置了,详细参考后面。
-a
特性使用。 有些终端,特别是televideo终端, 有个很讨厌的特性处理(串行而非并行)。minicom缺省使用‘-a on’,但若你在用这样的终端,你就可以(必须!)加上选项‘-a off’。尾字‘on’或‘off’需要加上。
-t
终端类型。使用此标志, 你可以重载环境变量TERM, 这在环境变量MINICOM 中使用很方便; 你可以创建一个专门的 termcap 入口以备minicom 在控制台上使用,它将屏幕初始化为raw模式, 这样,连同‘-l’标志一起,就可以不经翻译而显示IBM行字符。
-c
颜色使用。些终端(如Linux控制台)支持标准ANSI转义序列色彩。由于termcap显然没有对于色彩的支持,因而minicom 硬性内置了这些转义序列的代码。所以此选项缺省为off。使用‘-c on’可以打开此项。把这个标志,还有‘-m’放入MINICOM环境变量中是个不错的选择。
-S
脚本。 启动时执行给定名字的脚本。到目前为止,还不支持将用户名和口令传送给启动脚本。如果你还使用了‘-d’选项,以在启动时开始拨号,此脚本将在拨号之前运行,拨号项目入口由‘-d’指明。
-p
要使用的伪终端。 它超载配置文件中定义的终端端口,但仅当其为伪tty设备。提供的文件名必须采用这样的形式:(/dev/)tty[p-z][0-f]
-C
文件名。 启动时打开捕获文件。
-8
不经修改地传送8位字符。“连续”意指未对地点/特性进行真正改变,就不插入地点/特性控制序列。此模式用于显示8位多字节字符,比如日本字(TMD!应该是中国字!!)。不是8位字符的语言都需要(例如显示芬兰文字就不需要这个)。