编译静态库与编译共享库命令的区别

编译静态库与编译共享库命令的区别

Content #

现有initapi.c,randapi.c两个源文件,将其编译成myrand静态库:

gcc -c -Wall initapi.c
gcc -c -Wall randapi.c
ar rcs libmyrand.a initapi.o randapi.o

另有一使用该静态库的test.c文件,用gcc编译出可执行文件:

gcc test.c -L. -lmyrand -o test

将这两个源文件编译成共享库命令如下:

gcc -c -fpic initapi.c
gcc -c -fpic randapi.c
gcc -shared initapi.o randapi.o -o libmyrand.so

另有使用该共享库的test.c文件,用gcc如何编译出可执行文件?

gcc -o test test.c -L/opt/sources/myscripts/gcc -lmyrand

需要注意,test.c必须在命令行最前面。

From #