王道训练营3月24日

制作排序动态库

1.全部编译但是不链接

1 gcc -fPIC -c ./src/heap_sort.c -o ./lib/heap.o -I./include
2 gcc -fPIC -c ./src/heap.c -o ./lib/heap.o -I./include
3 gcc -fPIC -c ./src/arr.c -o ./lib/arr.o -I./include
4 gcc -fPIC -c ./src/bubble.c -o ./lib/bubble.o -I./include
5 gcc -fPIC -c ./src/bubble.c -o ./lib/inseert.o -I./include
6 gcc -fPIC -c ./src/bubble.c -o ./lib/bubble.o -I./include
7 gcc -fPIC -c ./src/insert.c -o ./lib/insert.o -I./include
8 gcc -fPIC -c ./src/quick.c -o ./lib/quick.o -I./include
9 gcc -fPIC -c ./src/select.c -o ./lib/select.o -I./include

2.制作为lib库文件

gcc -shared -o libSort.so ./*.o

3.复制到库文件目录

sudo cp ./libSort.so /usr/lib/

4.编译时动态链接库文件即可

gcc -o sort sort.c -lSort

 编写Makefile文件

Makefile编写格式如下

1  <target> : <prerequisites> 
2     [tab]  <commands>

上面第一行冒号前面的部分,叫做"目标"(target),冒号后面的部分叫做"前置条件"(prerequisites);第二行必须由一个tab键起首,后面跟着"命令"(commands)。

"目标"是必需的,不可省略;"前置条件"和"命令"都是可选的,但是两者之中必须至少存在一个。

每条规则就明确两件事:构建目标的前置条件是什么,以及如何构建。下面就详细讲解,每条规则的这三个组成部分。

*.c文件全部在src文件夹中,*.h文件放置在include文件夹中,可执行文件放在bin文件夹内。其中*.c存储排序函数,其中的test.c存储main函数,一同放入src文件夹中。

 1 ./bin/main.exe:./src/arr.o ./src/buble.o ./src/select.o ./src/insert.o ./src/quick.o ./src/heap.o ./src/test.o
 2     gcc -o ./bin/main.exe ./src/arr.o ./src/buble.o ./src/select.o ./src/insert.o ./src/quick.o ./src/heap.o ./src/test.o
 3 ./src/arr.o:./src/arr.c ./include/arr.h
 4     gcc -o ./src/arr.o -c ./src/arr.c -I./include
 5 ./src/buble.o:./src/buble_sort.c ./include/arr.h ./include/sort.h
 6     gcc -o ./src/buble.o -c ./src/buble_sort.c -I./include
 7 ./src/select.o:./src/select_sort.c ./include/arr.h ./include/sort.h
 8     gcc -o ./src/select.o -c ./src/select_sort.c -I./include
 9 ./src/insert.o:./src/insert_sort.c ./include/arr.h ./include/sort.h
10     gcc -o ./src/insert.o -c ./src/insert_sort.c -I./include
11 ./src/quick.o:./src/quick_sort.c ./include/arr.h ./include/sort.h
12     gcc -o ./src/quick.o -c ./src/quick_sort.c -I./include
13 ./src/heap.o:./src/heap_sort.c ./include/arr.h ./include/sort.h
14     gcc -o ./src/heap.o -c ./src/heap_sort.c -I./include
15 ./src/test.o:./src/test.c ./include/arr.h ./include/sort.h
16     gcc -o ./src/test.o -c ./src/test.c -I./include

 

posted @ 2015-03-24 20:14  千阳adam  阅读(317)  评论(0编辑  收藏  举报