静态库
libdemo.h
1
//
libdemo.h
2
#ifndef _LIBDEMO_H
3
#define
_LIBDEMO_H
4
5
void
demo_call(
char
*
msg);
6
7
#endif
libdemo.c
1
//
libdemo.c
2
#include
"
libdemo.h
"
3
#include <stdio.h>
4
5
void
demo_call(
char
*
msg)
6
{
7
printf(
"
%s\n
"
,msg);
8
}
编译库文件
# 编辑成目标文件
gcc
-c libdemo.c -
o libdemo.o
# 创建存档文件
ar
rcs libdemo.a libdemo.o
测试文件testdemo.c
1
#include
"
libdemo.h
"
2
3
int
main()
4
{
5
demo_call(
"
hello
"
);
6
return
0
;
7
}
gcc
testdemo.c -o testdemo -static -L. -ldemo
./testdemo
共享库
gcc
-fPIC -g -c libdemo.c -
o libdemo.o
gcc
-g -shared -WL,-soname,libdemo.so -o libdemo.so.
1.0
.
0
libdemo.o -
lc
ln
-s libdemo.so.
1.0
.
0
libdemo.so
gcc
testdemo.c -o -L. -
ldemo
# 为了能让.
/
testdemo执行需要将.so 加入到库里
export LD_LIBRARY_PATH
=$(
pwd
)
.
/testdemo

