ar作用:建立或修改备存文件,或是从备存文件中抽取文件。可让集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限。
语法:
ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>][备存文件][成员文件]
参数:
必要参数:
- -d 删除备存文件中的成员文件。
- -m 变更成员文件在备存文件中的次序。
- -p 显示备存文件中的成员文件内容。
- -q 将文件附加在备存文件末端。
- -r 将文件插入备存文件中。
- -t 显示备存文件中所包含的文件。
- -x 自备存文件中取出成员文件。
可选参数
- a<成员文件> 将文件插入备存文件中指定的成员文件之后。
- b<成员文件> 将文件插入备存文件中指定的成员文件之前。
- c 建立备存文件。
- f 为避免过长的文件名不兼容于其他系统的ar指令指令,因此可利用此参数,截掉要放入备存文件中过长的成员文件名称。
- i<成员文件> 将文件插入备存文件中指定的成员文件之前。
- o 保留备存文件中文件的日期。
- s 若备存文件中包含了对象模式,可利用此参数建立备存文件的符号表。
- S 不产生符号表。
- u 只将日期较新文件插入备存文件中。
- v 程序执行时显示详细的信息。
- V 显示版本信息。
实例应用:
创建三个文件fun1.h fun1.cpp main.cpp内容如下:
fun1.h
#ifndef FUN1_H
#define FUN1_H
void func1();
#endif
fun1.cpp
#include <iostream>
void func1()
{
std::cout << "func1 run\n";
}
main.cpp
#include "fun1.h"
int main()
{
func1();
return 1;
}
1、生成.o文件
g++ -c fun1.cpp main.cpp
生成 fun1.o main.o文件
2、生成lib库
ar -cr libfun1.a fun1.o
-c 创建lib库 -r 插入文件
生成fun1静态库
3、查看fun1静态库文件(-t)
ar -t libfun1.a
结果如下:
fun1.o
4、生成可执行文件
g++ -o main main.cpp -I . -L . -lfun1
-g :输出文件的调试信息
-O :对输出文件做指令优化
-I :指定头文件位置
-L:指定库文件位置
-l:指定使用哪个库
生成可执行文件 main