----------------------------------------------------------------------------------------------------------|
(摘自如下链接处并翻译的了一下) |
(http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html) |
---------------------------------------------------------------------------------------------------------- |
怎样创建一个static library (object code archive file):
- Compile: cc -Wall -c ctest1.c ctest2.c
Compiler options:- -Wall: 包含所有warning. 具体的warning定义,请参考 man page.
- 创建library "libctest.a": ar -cvq libctest.a ctest1.o ctest2.o
- 查看library中的文件: ar -t libctest.a
- Linking with the library:
- cc -o executable-name prog.c libctest.a
- cc -o executable-name prog.c -L/path/to/library-directory -lctest (译者注:此种用法,要保证library file是libctest.a的文件名,因为系统自动在ctest前加lib这个词,且附带.a扩展名)
- 例子文件:
- ctest1.c
void ctest1(int *i)
{
*i=5;
}
- ctest2.c
void ctest2(int *i)
{
*i=100;
}
- prog.c
#include <stdio.h> void ctest1(int *); void ctest2(int *); int main() { int x; ctest1(&x); printf("Valx=%d\n",x); return 0; }
- ctest1.c
本文详细介绍了如何使用GCC编译器创建静态库,并演示了如何将静态库链接到应用程序中。通过具体的代码示例,展示了从编译源文件、创建库文件到最终链接使用的全过程。
983

被折叠的 条评论
为什么被折叠?



