您的当前位置:首页静态库和动态库

静态库和动态库

2021-08-17 来源:乌哈旅游
Linux 下生成静态库和动态库

1、生成静态库

1.gcc -c test.c -o test.o 2.ar cr libgbfont.a test.o

注:ar是生成库的命令,cr是参数,libgbfont.a是生成静态库链接库须以lib开头,test是库名,a表示静态链接库,test.o是刚生成的目标文件 2、生成动态链接库

1、gcc -c test.c -o test.o

2、gcc -shared -WI -o libgbfont.so test.o

注:-shared -WI是参数,libgbfont.so 是生成的静态链接库须以lib开头,test是库名,so表示是动态链接库,test.o是刚才生成的目标文件 。。、 3、将生成的libgbfont.a,libgbfont.so拷贝到/usr/lib 或/lib下 4、编译带静态链接库的程序 1.gcc -c test.c -o test.o

2.gcc test.o -o test -WI -Bstatic -lh //g++ -o test test.cpp -L. -lgbfont

注:-WI -Bstatic 表示链接静态库,-lh中-l表示链接,h是库名即/usr/lib下的libgbfont.a 5、编译带动态链接库的程序 1.gcc -c test.c -o test.o

2.gcc test.o -o test -WI -Bdynamic -lh //g++ -o test test.cpp -L.-lgbfont

注:-WI -Bdynamic表示链接动态库,-lh中-l表示链接,h是库名即/usr/lib下的libh.so 6、运行./test得到结果 7、其他知识

有些库形如libh.so.1.0,1.0表示版本号.若要使用该库,通常要建立一个软连接,用ln -s libh.so.1.0 libh.so.系统不知道1.0为何意思。

编译连接时同时要用动态和静态链接库,则用如下命令 gcc test.o -o test -WI -Bstatic -lh1 -WI -Bdynamic -lh2

生成静态库和动态库的Makefile:

例如:gb2UTF8.cpp gb2UTF8.h #

GG=g++ LD=ld

LIBA=libgb2UTF8.a LIBSO=libgb2UTF8.so AR=ar

gb2UTF8:gb2UTF8.o $(GG) -c gb2UTF8.cpp -o gb2UTF8.o $(LD) -shared -o $(LIBSO) gb2UTF8.o $(AR) -r $(LIBA) gb2UTF8.o #使用链接库

# $(GG) gb2UTF8.cpp -I. -L. -o gb2UTF8.o -lgb2UTF8 clean:

rm -f *.o *.a *.so gb2UTF8

静态库和动态库生成XML

因篇幅问题不能全部显示,请点此查看更多更全内容