编译静态库过程:
源文件包括: liberr.h, liberr.c
编译为静态库:
gcc -c liberr.c -o liberr.o
ar rcs liberr.a liberr.o
如此, 就在当前目录下构建好静态库文件liberr.a;
扩展:
. ar -t liberr.a 列出库文件中所有的目标文件(.o);
. nm, 列出目标文件(.o)的符号清单;
nm -s liberr.a
. objdump, 查看目标文件的信息, 就是(ar和nm的复合);
测试该静态库:
测试文件: errtest.c
编译连接: gcc errtest.c -static -L. -lerr -o test
其中, -lerr, 指定静态库名为liberr; -L. , 指定静态库的搜索路径为当前目录;
报错: /usr/bin/ld: cannot find -lc
也就是说, 连接器找不到libc.a; 上网查找, 说是因为未安装该库;
so, yum install glibc-static
再编译, OK.
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |