第 1 步:把 sb.c 编译成目标文件 sb.o
gcc -c sb.c -o sb.o
-
-c:只编译、不链接,第 2 步:用 sb.o 生成静态库 libsb.a
ar crv libsb.a sb.o输出目标文件
sb.o,对应教程里的hello.o
第 3 步:删除同目录的动态库(可选但建议做)
rm -f libsb.so
和教程说的完全一致:如果同一个目录下同时存在 libsb.a(静态)和 libsb.so(动态),gcc 链接时默认优先选动态库 。 删掉 libsb.so 可以确保接下来链接的一定是静态库。
*
第 4 步:生成可执行文件 main1(这一步就是混合链接)
gcc main.c -L. -lsb -o main1